1=== release 1.16.2 === 2 32019-12-03 11:19:22 +0000 Tim-Philipp Müller <tim@centricular.com> 4 5 * ChangeLog: 6 * NEWS: 7 * RELEASE: 8 * configure.ac: 9 * gstreamer-vaapi.doap: 10 * meson.build: 11 Release 1.16.2 12 132019-12-03 11:19:22 +0000 Tim-Philipp Müller <tim@centricular.com> 14 15 * docs/plugins/inspect/plugin-vaapi.xml: 16 Update docs 17 182019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19 20 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 21 libs: decoder: h265: skip all pictures prior the first I-frame 22 Don't try to decode until the first I-frame is received within the 23 currently active sequence. i965 H265 decoder don't show any artifact 24 but it crashes. 25 Fixes: #98 26 272019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 28 29 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30 libs: window: x11: Avoid usage of deprecated API 31 322019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 33 34 * meson.build: 35 build: halt meson configuration if no renderer API 36 We should halt meson configuration if there is no render API 37 installed (either DRM, Wayland or X11). 38 That behavior was already in autotools but missed in meson. This patch 39 brings it back. 40 Fixes: #196 41 42=== release 1.16.1 === 43 442019-09-23 11:20:44 +0100 Tim-Philipp Müller <tim@centricular.com> 45 46 * ChangeLog: 47 * NEWS: 48 * RELEASE: 49 * configure.ac: 50 * gstreamer-vaapi.doap: 51 * meson.build: 52 Release 1.16.1 53 542019-09-23 11:20:44 +0100 Tim-Philipp Müller <tim@centricular.com> 55 56 * docs/plugins/inspect/plugin-vaapi.xml: 57 Update docs 58 592019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com> 60 61 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 62 * gst-libs/gst/vaapi/gstvaapiutils_egl.h: 63 egl: Fix racyness in display thread creation 64 Multiple different scenarios could break the display thread creation and 65 end up blocking waiting for thread o be created. Fix them all by 66 correctly waiting for a new boolean to become valid. 67 682019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com> 69 70 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 71 egl: don't advertise a wrapped EGLContext as actually wrapped 72 It's not actually wrapped as we create a new EGLContext from the passed 73 in EGLContext. As a result, the created EGLContext was never destroyed. 74 752019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com> 76 77 * gst/vaapi/gstvaapipluginutil.c: 78 pluginutil: Remove Mesa from drivers white list 79 The Mesa Gallium driver is poorly tested currently, leading to bad user 80 experience for AMD users. The driver can be added back to the white list at 81 runtime using the GST_VAAPI_ALL_DRIVERS environment variable. 82 832019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com> 84 85 * gst/vaapi/gstvaapidecodebin.c: 86 Classify vaapidecodebin as a hardware decoder 87 882019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com> 89 90 * gst/vaapi/gstvaapipostproc.c: 91 libs: postproc: fix a memory leak point. 92 filter_ops and filter_formats should already have valid value when 93 the function gst_vaapipostproc_ensure_filter_caps re-enter 94 952019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 96 97 * gst/vaapi/gstvaapivideomemory.c: 98 vaapivideomemory: demote error message to info 99 The main reason to demote the message's level is because it is not an 100 error, it's a possible output of the trial and there's a code path 101 that handles it. 102 Secondly, it's very annoying when using gallium driver for radeon. 103 1042019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com> 105 106 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 107 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 108 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes 109 When input frame's formate changes, vp{8,9} encoders don't reset their frame 110 counter, hence the newly created frame could become a P-frame, leading to some 111 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame 112 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and 113 GstVaapiEncoderVP9 implementations. 114 1152019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com> 116 117 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 118 libs: mpeg2 encoder: No packed header for SPS and PPS 119 Dislable passing down packed PPS and PPS to driver if driver does 120 not want it. 121 Fix: #168 122 1232019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 124 125 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 126 libs: dec: vp9: clear parser pointer after release 127 Fix an use-after-release of the parser pointer in VP9 decoder. 128 1292019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru> 130 131 * gst/vaapi/gstvaapiencode.c: 132 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function 133 This fixes a deadlock in gst_vaapiencode_change_state, which was due to 134 srcpad's chain function was locked waiting for available buffers. Since the 135 coded buffers in codedbuf_queue become available after sinkpad consume the 136 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers 137 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for 138 available buffers and holds the stream_lock of the srcpad. 139 1402019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com> 141 142 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 143 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B. 144 When enable low delay B, the reference list 1 will be same with 145 reference list 0, so need reset the num_ref_idx_l1_active_minus1 146 to num_ref_idx_l0_active_minus1. 147 Fixes: #160 148 1492019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com> 150 151 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 152 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 153 libs: encoder: not call ensure_num_slices inside g_assert 154 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is 155 defined. The function inside the g_assert will take no effect and 156 we will fail to set the correct slice number. 157 1582019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 159 160 * gst-libs/gst/vaapi/gstvaapiencoder.c: 161 libs: encoder: continue if roi meta is NULL 162 Coverity scan bug: 163 If the function actually returns a null value, a null pointer 164 dereference will occur. 165 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of 166 function which returns null is dereferenced without checking 167 1682019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com> 169 170 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 171 lib: decoder: vp9: Set chroma_type by VP9 bit_depth 172 The decoder's surface chroma type should depend on the bit depth 173 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind 174 10 bits surface as the decoder result. 175 Fixes #155 176 1772019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 178 179 * gst/vaapi/gstvaapipostprocutil.c: 180 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD 181 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected 182 with commit 3e992d8a 183 Since gst_vaapi_find_preferred_caps_feature() returns a color format 184 from caps negotiation, different from the default one (NV12), the 185 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD 186 feature is negotiated, no color transformation shall be done. 187 Nonetheless, with commit 3e992d8a the requested format changes 188 firstly, because there's no video sink yet, so ANY caps are 189 negotiated; but later, when there's a video sink and a caps 190 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color 191 format conversion still ongoing. It is required to reset that 192 conversion. 193 This patch force default color format when GL_TEXTURE_UPLOAD is 194 selected as preferred, thus avoiding the color conversion. 195 Fixes: #157 196 1972019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com> 198 199 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 200 libs: surface: fix double free when dmabuf export fails 201 Happens if vaAcquireBufferHandle fails. 202 2032019-05-02 12:37:18 +0100 Tim-Philipp Müller <tim@centricular.com> 204 205 * .gitlab-ci.yml: 206 ci: use template from 1.16 branch 207 208=== release 1.16.0 === 209 2102019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com> 211 212 * ChangeLog: 213 * NEWS: 214 * RELEASE: 215 * configure.ac: 216 * gstreamer-vaapi.doap: 217 * meson.build: 218 Release 1.16.0 219 2202019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com> 221 222 * docs/plugins/inspect/plugin-vaapi.xml: 223 Update docs 224 2252019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 226 227 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 228 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 229 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 230 libs: encoder: h264,h265: guard VA version for max_qp property 231 This patch fixes a regression from commit 5b1fe9c6. 232 max_qp, in rate control configuration, appeared in libva release 233 2.1 (API 1.1), thus it is required to guard the VA API version. 234 Fixes: #150 235 2362019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com> 237 238 * gst-libs/gst/vaapi/gstvaapiimage.c: 239 * gst-libs/gst/vaapi/video-format.c: 240 libs: Add RGB565 image format support. 241 2422019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 243 244 * configure.ac: 245 build: configure: delay USE_GTK conditional until check libva-x11 246 libva-x11 is used for X11 applications, so it is required to build 247 any GTK application. 248 Later, when Wayland test is added, we should change this. 249 2502019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 251 252 * configure.ac: 253 build: configure: disable GLX if libva-x11 is not found 254 2552019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com> 256 257 * gst-libs/gst/vaapi/gstvaapiutils.c: 258 libs: utils: avoid macro evaluation when stringify 259 string_of_va_chroma_format() gets a wrong string format description. 260 For example, the YUV420_10BPP get a string of 0x00000100 as output. 261 It's because VA_RT_FORMAT_xxx values are macro definitions. And 262 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value 263 0x00000XXX. 264 To avoid the macro evaluation, it is changed to show only the color 265 format without VA_RT_FORMAT_ prefix. 266 2672019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 268 269 * gst-libs/gst/vaapi/gstvaapiutils.c: 270 libs: utils: use glib's macros 271 Don't reinvent the wheel. 272 2732019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com> 274 275 * gst/vaapi/gstvaapipluginutil.c: 276 plugins: find the preferred format from right caps. 277 When the downstream has any caps, then raw video feature will 278 be used. At this situation, the preferred format should be chose 279 from caps which contains "vide/x-raw" feature instead of from 280 the fist allowed caps. 281 Fixes #142 282 2832019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com> 284 285 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 286 libs: encoder: h265: fill tier in va seq param buf 287 Now that tier is calculated in commit 58e74f9440fe (!68), 288 ensure we fill in the general_tier_flag in the 289 VAEncSequenceParameterBufferHEVC. 290 291=== release 1.15.90 === 292 2932019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com> 294 295 * ChangeLog: 296 * NEWS: 297 * RELEASE: 298 * configure.ac: 299 * gstreamer-vaapi.doap: 300 * meson.build: 301 Release 1.15.90 302 3032019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com> 304 305 * docs/plugins/inspect/plugin-vaapi.xml: 306 Update docs 307 3082019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com> 309 310 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 311 libs: encoder: h265: Recognize the correct level and tier. 312 The current manner can not recognize the correct level and always 313 set the tier to main. Need to add frame rate check to recognize 314 levels such as 4.1, 6.2, etc. We also add a logic to check main 315 and high tier based on bitrate. 316 Fixes: #145 317 3182019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com> 319 320 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 321 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 322 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 323 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero. 324 media-driver currently fails to set a correct value of max_qp when 325 min_qp is different to zero, in CBR and VBR mode, generating full 326 quality frames, thus unexpected huge output. 327 This patch sets max_qp to an arbitrary value to avoid this output 328 temporary. 329 Fixes: #144 330 3312019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 332 333 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 334 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 335 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 336 libs: encoder: h264,h265: initial and minimal QP can be zero 337 Currently the minimal value for either min_qp and init_qp are 1, 338 but VA documentation specifiy that zero is also valid and means 339 to ignore the quantiser. 340 The default value is not changed though to avoid behaivor changes 341 to users. 342 3432019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com> 344 345 * tests/elements/meson.build: 346 meson: build test-vaapicontext when using X11 347 x11_dep and libva_x11_dep are optional and meson ignores these 348 dependencies even if they are added into the dependency list. 349 This fixes the error below when libva-x11 is not avaiblabe: 350 cc -Itests/elements/tests@elements@@test-vaapicontext@exe 351 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I. 352 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs 353 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0 354 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4 355 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 356 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include 357 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ 358 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0 359 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo 360 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 361 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 362 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall 363 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread 364 -DHAVE_CONFIG_H -MD -MQ 365 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o' 366 -MF 367 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d' 368 -o 369 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o' 370 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c 371 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal 372 error: va/va_x11.h: No such file or directory 373 #include <va/va_x11.h> 374 3752019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com> 376 377 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 378 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c: 379 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c: 380 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids 381 GValueArray is deprecated. Use GstValueArray instead. 382 3832019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com> 384 385 * gst/vaapi/gstvaapipluginutil.c: 386 vaapipluginutil: Fix #endif for USE_X11 387 3882019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 389 390 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 391 libs: encoder: h264: simplify the view-ids setting 392 3932019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com> 394 395 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 396 libs: encoder: h264: Use gst_param_spec_array for view-ids 397 GValueArray is deprecated. Use GstValueArray instead. 398 gst_param_spec_array can be deserialized from command line using: 399 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2 400 While the g_param_spec_value_array() can not, and always get 401 error: "gst_value_deserialize_g_value_array: unimplemented" 402 Also fixed an out-of-range bug. 403 4042019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com> 405 406 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 407 libs: Change the parameter setting order when encode picture. 408 The order in gst_vaapi_enc_picture_encode when encoding one 409 picture is not very correct. The misc parameters are set before 410 the picture parameters. Some of the misc parameters such as 411 ROI may change the current picture parameters. But the later 412 setting of picture parameter will re-init all picture related 413 parameters and clear the previous setting. The right order 414 should be picture parameter first and then misc parameters. 415 Signed-off-by: He Junyan <junyan.he@hotmail.com> 416 4172019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com> 418 419 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 420 libs: decoder: jpeg: support dynamic resolution change decode. 421 Add size_changed flag to watch out resolution. if change, reset 422 jpeg decoder's context. 423 4242019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com> 425 426 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 427 libs: encoder: h265: add low power mode encode. 428 By now, this feature only support by media-driver on Ice Lake 429 platform, more information you can reference: 430 https://github.com/intel/media-driver 431 4322019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com> 433 434 * gst/vaapi/gstvaapiencode.c: 435 vaapiencode: gobject's prop_id differ from vaapi encoder 436 The vaapi internal encoder's property id are negative, thus they are 437 different from GObject's property ids. 438 gst_vaapi_encoder_set_property() should map to the internal encoder 439 property id, assigned in gst_vaapiencode_default_set_property(). 440 4412019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com> 442 443 * meson.build: 444 meson: disable compiler warnings for unused vars and args if gst debug system is disabled 445 4462019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com> 447 448 * meson.build: 449 meson: use new 'python' module instead of deprecated 'python3' one 450 4512019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com> 452 453 * common: 454 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11 455 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205 456 4572019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com> 458 459 * NEWS: 460 * RELEASE: 461 * configure.ac: 462 * docs/plugins/inspect/plugin-vaapi.xml: 463 * meson.build: 464 Back to development 465 4662019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com> 467 468 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 469 libs: Fix a typo in comments. 470 Fix a typo in function description of 471 gst_vaapi_surface_pool_new_with_chroma_type. 472 Signed-off-by: He Junyan <junyan.he@hotmail.com> 473 4742019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 475 476 * gst/vaapi/gstvaapipluginutil.c: 477 plugin: if any caps in downstream, negotiate raw video 478 When downstream has any caps, vaapi should not shovel vaapi featured 479 buffers, but rather plain raw video, assuming always the worst case 480 scenario (downstream cannot handle featured video memory but raw 481 system memory buffers). 482 This patch query the peer caps without any filter, to know if 483 donwstream just ask for any caps, if so jump to the color space 484 checking, otherwise do the caps intersection and continue with the 485 feature selection algorithm. 486 Fixes: #139 487 488=== release 1.15.2 === 489 4902019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com> 491 492 * ChangeLog: 493 * NEWS: 494 * RELEASE: 495 * configure.ac: 496 * gstreamer-vaapi.doap: 497 * meson.build: 498 Release 1.15.2 499 5002019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com> 501 502 * docs/plugins/inspect/plugin-vaapi.xml: 503 Update docs 504 5052019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com> 506 507 * gst/vaapi/gstvaapivideomemory.c: 508 vaapivideomemory: Prefer same format for surface and image 509 We prefer to use the same format between image and surface for gst 510 vaapi allocator. The old way may choose different formats between 511 image and surface. For example, the RGBA image may have a NV12 surface. 512 So we need to do format conversion when we put/get image to surface. 513 Some drivers such as iHD can not support such conversion and always 514 cause a data flow error. There may also have some performance cost 515 for format conversion when put/get images. 516 So we prefer to use the same format for image and surface in the 517 allocator. If the surface can not support that format, we then 518 fallback to find a best one as the surface format. 519 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com> 520 5212019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com> 522 523 * gst-libs/gst/vaapi/video-format.c: 524 libs: Delete the duplicated ARGB video format. 525 Two ARGB formats with the same format information. 526 Should be verbose and delete one. 527 Signed-off-by: He Junyan <junyan.he@hotmail.com> 528 5292019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com> 530 531 * common: 532 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 533 glx: Stop specifying GLX_DEPTH_SIZE 534 This code is just confused. It's asking for at least as many bits of 535 (z-axis) depth as the root window has bits of (color) depth. For rgb565 536 or rgb888 this is harmless, but at 10 bits per channel this demands a 537 30-bit or deeper Z buffer. While some hardware could in principle do a 538 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel 539 and AMD). 540 We're not actually using the Z buffer, so just stop asking for one. 541 5422019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com> 543 544 * configure.ac: 545 * gst-libs/gst/vaapi/Makefile.am: 546 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 547 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 548 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 549 * gst-libs/gst/vaapi/meson.build: 550 * gst/vaapi/gstvaapisink.c: 551 * meson.build: 552 libs: wayland: add support for XDG-shell protocol 553 [wl_shell] is officially [deprecated], so provide support for the 554 XDG-shell protocol should be provided by all desktop-like compositors. 555 (In case they don't, we can of course fall back to wl_shell). 556 Note that the XML file is directly provided by the `wayland-protocols` 557 dependency and generates the protocol marshalling code. 558 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html 559 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c 560 5612019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com> 562 563 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 564 libs: window: wayland: Prefix wl_shell_surface field with `wl_` 565 It will help us to distinguish from other Wayland shell surface 566 (such as XDG-shell) later on. 567 5682019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com> 569 570 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 571 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 572 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 573 libs: wayland: Prefix wl_shell field with `wl_` 574 It will help us to distinguish from other Wayland shells (such as 575 XDG-shell) later on. 576 5772019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com> 578 579 * gst-libs/gst/vaapi/gstvaapidisplay.c: 580 libs: display: lock ensure_profile() 581 Thread safety patch for ensure_profile() function 582 Fixes #133 583 5842019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 585 586 * meson.build: 587 meson: bump the minimum wayland version requirement to 1.11.0 588 This was missed on commit 77bb3424 589 5902019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 591 592 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 593 * gst/vaapi/gstvaapisink.c: 594 vaapisink: x11: trap WM_DELETE_WINDOW message 595 Register the WM_DELETE_WINDOW message from window manager and 596 trap it to stop the pipeline cleanly. 597 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130 598 5992019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 600 601 * gst-libs/gst/vaapi/gstvaapiwindow.c: 602 libs: window: remove native-id property 603 native-id property is problematic since the variable that stores it is 604 gsize, which is platform specific, and in some is bigger than unsigned 605 long, and there are not way to handle gsize properties. 606 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would 607 like to keep using it for this scope. 608 This patch removes the native-id property and set it manually in 609 gst_vaapi_window_new_internal(). 610 6112019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 612 613 * gst-libs/gst/vaapi/gstvaapiwindow.c: 614 libs: window: use G_GSIZE_MODIFIER for window id 615 gsize type is not equal in all platforms, then the 'l' print modifier 616 shall not be used always. 617 This issue was found in Debian builds. 618 6192019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com> 620 621 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 622 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 623 encoder: h264/h265: set SPS cbr_flag with correct value. 624 The flag only set as 1 when the rate-control mode is CBR. 625 626=== release 1.15.1 === 627 6282019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com> 629 630 * ChangeLog: 631 * NEWS: 632 * RELEASE: 633 * configure.ac: 634 * gstreamer-vaapi.doap: 635 * meson.build: 636 Release 1.15.1 637 6382019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com> 639 640 * docs/plugins/inspect/plugin-vaapi.xml: 641 Update docs 642 6432019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 644 645 * gst-libs/gst/vaapi/gstvaapiencoder.c: 646 libs: encoder: refactor to avoid code duplication 647 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates 648 the same code segment where the coded buffer is created, the picture 649 encoded on it and pushed to the async queue. 650 The function gst_vaapi_encoder_encode_and_queue() refactor this. 651 6522019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 653 654 * gst-libs/gst/vaapi/gstvaapiencoder.c: 655 * gst-libs/gst/vaapi/gstvaapiencoder.h: 656 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 657 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 658 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 659 libs: encoder: h264/h265: flush pending ordered pictures 660 In order to flush the pending pictures, a new internal encoder vmethod 661 is used: get_pending_reordered() 662 This method follows an iterator pattern which will return the next 663 picture to encode and push. 664 The base encoder will call this function in a loop when flush() is called. 665 For now, only H.264 and H.265 encoders implement this flushing mechanism. 666 6672018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com> 668 669 * gst-libs/gst/vaapi/gstvaapiencoder.c: 670 * gst-libs/gst/vaapi/gstvaapiencoder.h: 671 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 672 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 673 libs: encoder: h264/h265: fix encode lose frame issue. 674 Instead of dropping all remain frames in reorder_frame_list during 675 flush, keep encoding. 676 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97 677 6782019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com> 679 680 * gst/vaapi/gstvaapipostproc.c: 681 vaapipostproc: before set surface proxy, check if it already been created and exist. 682 Fix the deinterlace black frame when playing with glimagesink: 683 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \ 684 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink 685 6862019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com> 687 688 * gst-libs/gst/vaapi/gstvaapiutils.c: 689 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file. 690 6912018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com> 692 693 * gst-libs/gst/vaapi/meson.build: 694 * gst/vaapi/meson.build: 695 * meson.build: 696 * tests/meson.build: 697 meson: build h264 fei encoder if possible 698 6992018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com> 700 701 * configure.ac: 702 configure: bump the minimum wayland version requirement to 1.11.0 703 7042018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com> 705 706 * configure.ac: 707 * gst-libs/gst/vaapi/Makefile.am: 708 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 709 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h: 710 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 711 * gst-libs/gst/vaapi/gstvaapicompat.h: 712 * gst-libs/gst/vaapi/gstvaapicontext.c: 713 * gst-libs/gst/vaapi/gstvaapidisplay.c: 714 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 715 * gst-libs/gst/vaapi/gstvaapifilter.c: 716 * gst-libs/gst/vaapi/gstvaapiprofile.c: 717 * gst-libs/gst/vaapi/gstvaapisurface.c: 718 * gst-libs/gst/vaapi/gstvaapiutils.c: 719 * gst-libs/gst/vaapi/gstvaapiutils_core.c: 720 * gst-libs/gst/vaapi/meson.build: 721 * gst/vaapi/Makefile.am: 722 * gst/vaapi/gstvaapi.c: 723 * gst/vaapi/gstvaapidecode.c: 724 * gst/vaapi/gstvaapidecodebin.c: 725 * gst/vaapi/gstvaapipluginbase.c: 726 * gst/vaapi/meson.build: 727 * meson.build: 728 * tests/decoder.c: 729 * tests/simple-decoder.c: 730 vaapi: bump the minimum vaapi version requirement to 0.39.0 731 And reduce unnecessary API version and structures check as well. 732 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108 733 7342018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 735 736 * gst-libs/gst/vaapi/gstvaapiwindow.c: 737 * gst-libs/gst/vaapi/gstvaapiwindow.h: 738 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 739 * tests/test-decode.c: 740 * tests/test-filter.c: 741 * tests/test-subpicture.c: 742 * tests/test-textures.c: 743 * tests/test-windows.c: 744 libs: window: remove custom ref() and unref() 745 Use gst_object_ref() and gst_object_unref() instead. 746 7472018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 748 749 * gst-libs/gst/vaapi/gstvaapiwindow.c: 750 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 751 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: 752 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 753 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 754 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 755 libs: window: use its own debug category 756 7572018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 758 759 * gst-libs/gst/vaapi/gstvaapiwindow.c: 760 * gst-libs/gst/vaapi/gstvaapiwindow.h: 761 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 762 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: 763 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: 764 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h: 765 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 766 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 767 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 768 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 769 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: 770 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 771 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 772 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 773 libs: window: refactor as gobject 774 This is another step in the gobjectification of the internal library 775 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its 776 derivates. 777 The idea is to minimize the changeset keeping the same design as 778 much as possible. 779 GstVaapiWindow is defined as an abstract class with two properties: 780 the GstVaapiDisplay and the native ID. Thus, many of the 781 GstVaapiObject macros were copied as GstVaapiWindow macros. 782 The function gst_vaapi_window_new_internal() is kept as a decorator 783 of for calling gst_vaapi_window_create() and the possibility of 784 failure. 785 The descendant classes, such as glx, still use the private 786 structures, but through the gobject mechanism. 787 7882018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 789 790 * gst-libs/gst/vaapi/gstvaapifilter.c: 791 libs: filter: use its own debug category 792 7932018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com> 794 795 * gst/vaapi/gstvaapidecode.c: 796 * gst/vaapi/gstvaapipluginbase.c: 797 * gst/vaapi/gstvaapipluginbase.h: 798 * gst/vaapi/gstvaapipostproc.c: 799 * gst/vaapi/gstvaapisink.c: 800 plugins: Add more check for allowed raw caps. 801 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink 802 pad and src pad, which cause some bugs. For sink pad, we need to verify 803 vaPutImage() while for the src pad we need to verify vaGetImage(). 804 For vaapidecoderXXX kind of plugins, the case is more complex. We need 805 to verify whether the decoded result(in some surface, NV12 format most 806 of the time) can be vaGetImage to some raw image format. Add more check 807 to fix all these problems. 808 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123 809 Signed-off-by: He Junyan <junyan.he@hotmail.com> 810 8112018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com> 812 813 * gst/vaapi/gstvaapipostproc.c: 814 vaapipostproc: fix csc fail when only change width or height. 815 8162018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com> 817 818 * tests/elements/meson.build: 819 meson: Add gtk guard 820 8212018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com> 822 823 * gst/vaapi/gstvaapiencode_h264.c: 824 libs: enc: h264: set max profile idc with correct profile. 825 Use the highest rank of available profile as the max profile to 826 set max idc value. 827 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124 828 8292018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com> 830 831 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 832 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 833 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 834 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable 835 This gets rid of the strange `do_init` macro and makes the intent a bit 836 more clear. 837 8382018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com> 839 840 * common: 841 Automatic update of common submodule 842 From ed78bee to 59cb678 843 8442018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com> 845 846 * gst-libs/gst/vaapi/gstvaapiimage.c: 847 * gst-libs/gst/vaapi/gstvaapiprofile.c: 848 * gst-libs/gst/vaapi/gstvaapiprofile.h: 849 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 850 * gst-libs/gst/vaapi/video-format.c: 851 * gst/vaapi/gstvaapidecode.c: 852 * gst/vaapi/gstvaapipluginutil.h: 853 libs: dec: h265: support decode for main-444 10bit streams. 854 Add 444 10bit yuv format Y410, which can be used to decode 855 main-444 10bit streams. Currently, this feature is only 856 supported by media-driver in Icelake. 857 8582018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com> 859 860 * gst/vaapi/gstvaapidecode.c: 861 * gst/vaapi/gstvaapisink.c: 862 Run gst-indent through the files 863 This is required before we enabled an indent test in the CI. 864 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33 865 8662018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com> 867 868 * gst/vaapi/gstvaapipluginbase.c: 869 plugins: modify image check of extract_allowed_surface_formats. 870 The extract_allowed_surface_formats function just check whether 871 we can support some kind of surface/image format pair. We just 872 need to create a surface, create an image with the same video-format 873 and putImage from image to surface. All these operations success, 874 that kind of video-format is supported. 875 The old manner do not work for some kind of video-format. For example, 876 the RGBA kind of format will create a NV12 surface and RGBA image, 877 and the putImage will fail because the format is not same. And so 878 the RGBA format is not supported but actually it is supported. 879 8802018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de> 881 882 * gst/vaapi/gstvaapipostproc.c: 883 vaapipostproc: add some missing locking 884 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly 885 in gst_vaapipostproc_transform_caps(). The usage is already protected by 886 the mutex. 887 This is needed when the pipeline is stopped during startup. 888 8892018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com> 890 891 * gst/vaapi/gstvaapivideomemory.c: 892 Close dmabuf_fd 893 Otherwise it will result in resource leak when failed to create 894 dmabuf memory 895 8962018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de> 897 898 * gst/vaapi/gstvaapiencode.c: 899 vaapiencode: don't start src pad task in set_format 900 Otherwise the task may be restarted during shutdown. Start the task in 901 gst_vaapiencode_handle_frame() instead. 902 9032018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com> 904 905 * gst-libs/gst/vaapi/gstvaapiprofile.c: 906 * gst-libs/gst/vaapi/gstvaapiprofile.h: 907 * gst-libs/gst/vaapi/gstvaapiutils.c: 908 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 909 * gst/vaapi/gstvaapidecode.c: 910 * gst/vaapi/gstvaapipluginutil.h: 911 libs: dec: h265: support decode for main-444 8bit streams. 912 Add 444 8bit yuv format AYUV, which can be used to decode 913 main-444 8bit streams. Currently, this feature is only 914 supported by media-driver in Icelake. 915 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119 916 9172018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 918 919 * .gitlab-ci.yml: 920 Add Gitlab CI configuration 921 This commit adds a .gitlab-ci.yml file, which uses a feature 922 to fetch the config from a centralized repository. The intent is 923 to have all the gstreamer modules use the same configuration. 924 The configuration is currently hosted at the gst-ci repository 925 under the gitlab/ci_template.yml path. 926 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29 927 9282018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com> 929 930 * gst-libs/gst/vaapi/gstvaapisurface.h: 931 * gst-libs/gst/vaapi/gstvaapiutils.c: 932 libs: Sync the GstVaapiChromaType to VA header file. 933 Add more kinds of chrometype which will be used to describe 934 new video formats. Sync it with 1.4.0 version header file. 935 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type. 936 Signed-off-by: He Junyan <junyan.he@hotmail.com> 937 9382018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com> 939 940 * gst-libs/gst/vaapi/meson.build: 941 meson: link with -lm 942 Fixes #117 hopefully. 943 9442018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com> 945 946 * meson.build: 947 meson: bump meson required to 0.47 for feature options 948 9492018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com> 950 951 * gst-libs/gst/vaapi/video-format.c: 952 libs: Modify the video format of endianness. 953 We lack some video format because endianness declare. 954 The video format should not directly relate to endianness. For example, 955 ARGB on big endian should not be simplely seen as BGRA on little endian 956 machine. We should provide endianess convert or format convert help 957 functions if endianness does not match. 958 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112 959 Signed-off-by: Junyan He <junyan.he@intel.com> 960 9612018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com> 962 963 * gst/vaapi/gstvaapipluginutil.c: 964 plugins: Fix build error when GL is enabled while EGL is disabled. 965 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate 966 unused-variable warning and may block build when Werror enabled. 967 Several functions like gst_vaapi_display_egl_new_with_native_display 968 have no prototype warning and link error when GL is enabled but EGL 969 is disabled. Fix all these warning and link error. 970 https://bugzilla.gnome.org/show_bug.cgi?id=797358 971 Signed-off-by: Junyan He <junyan.he@intel.com> 972 9732018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com> 974 975 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 976 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c: 977 libs: encoder: h264/h264fei: remove unuseless code. 978 The variable are set twice, remove previous one. 979 https://bugzilla.gnome.org/show_bug.cgi?id=797365 980 9812018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com> 982 983 * tests/simple-encoder.c: 984 * tests/test-fei-enc-in.c: 985 tests: check return value when using gst_buffer_map. 986 https://bugzilla.gnome.org/show_bug.cgi?id=797366 987 9882018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 989 990 * meson.build: 991 * meson_options.txt: 992 * tests/elements/meson.build: 993 * tests/meson.build: 994 build: meson: build examples 995 9962018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 997 998 * gst-libs/gst/vaapi/meson.build: 999 build: meson: declare headers for libgstvaapi 1000 Thus handling its recompilation if needed. 1001 10022018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com> 1003 1004 * .gitmodules: 1005 Update common submodule location 1006 Remove the git directory 1007 10082018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com> 1009 1010 * .gitmodules: 1011 * gstreamer-vaapi.doap: 1012 Clone the code from gitlab 1013 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116 1014 10152018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com> 1016 1017 * gst-libs/gst/vaapi/gstvaapiimage.c: 1018 * gst-libs/gst/vaapi/gstvaapisurface.h: 1019 * gst-libs/gst/vaapi/gstvaapiutils.c: 1020 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 1021 * gst-libs/gst/vaapi/video-format.c: 1022 * gst/vaapi/gstvaapidecode.c: 1023 * gst/vaapi/gstvaapipluginutil.h: 1024 libs: dec: h265: support decode for main-10-422 10bit streams. 1025 Add 422 10bit yuv format Y210, which can be used to decode 1026 main-10-422 10bit streams. Currently, this feature is only 1027 supported by media-driver in Icelake. 1028 https://bugzilla.gnome.org/show_bug.cgi?id=797264 1029 10302018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com> 1031 1032 * gst-libs/gst/vaapi/gstvaapicontext.c: 1033 libs: context: roi_rc_qp_delta_support should not be checked when CQP. 1034 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the 1035 rate control mode is set as CQP. In CQP mode, it shouldn't check 1036 roi_rc_qp_delta_support return value from driver backend. 1037 https://bugzilla.gnome.org/show_bug.cgi?id=797087 1038 10392018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1040 1041 * gst/vaapi/gstvaapipostproc.c: 1042 vaapipostproc: fix classification string 1043 The classification string is splitted by '/' and then looks for the 1044 components. 1045 This patch removes the ';' by unifying all the components. 1046 10472018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com> 1048 1049 * gst/vaapi/gstvaapipostproc.c: 1050 vaapipostproc: Add Hardware classifier to metadata 1051 10522018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com> 1053 1054 * gst-libs/gst/vaapi/gstvaapicontext.c: 1055 libs: context: create context first before using it to create surface. 1056 In gst_vaapi_context_reset(), if the context has to be destroyed, make 1057 sure to create it first before allocating its associated surfaces. 1058 This patch fixes a regression introduced in commit 82872f4 because 1059 the formats available in the current context now are ensured before 1060 creating the context's surfaces. 1061 https://bugzilla.gnome.org/show_bug.cgi?id=797277 1062 10632018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com> 1064 1065 * docs/plugins/inspect/plugin-vaapi.xml: 1066 * gst/vaapi/gstvaapidecode.c: 1067 * gst/vaapi/gstvaapiencode_h264.c: 1068 * gst/vaapi/gstvaapiencode_h264_fei.c: 1069 * gst/vaapi/gstvaapiencode_h265.c: 1070 * gst/vaapi/gstvaapiencode_jpeg.c: 1071 * gst/vaapi/gstvaapiencode_mpeg2.c: 1072 * gst/vaapi/gstvaapiencode_vp8.c: 1073 * gst/vaapi/gstvaapiencode_vp9.c: 1074 gst: Advertise elements interacting with hardware devices 1075 10762018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com> 1077 1078 * gst-libs/gst/vaapi/gstvaapicontext.c: 1079 * gst-libs/gst/vaapi/gstvaapisurface.c: 1080 * gst-libs/gst/vaapi/gstvaapisurface.h: 1081 libs: context: query surface format before context to create surface. 1082 Before using context to create surface, the supported surface format 1083 should be checked first. 1084 https://bugzilla.gnome.org/show_bug.cgi?id=797222 1085 10862018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1087 1088 * gst-libs/gst/vaapi/gstvaapiimage.c: 1089 * gst-libs/gst/vaapi/gstvaapivalue.c: 1090 libs: replace g_error with GST_ERROR 1091 And handle those errors rather than halting. 1092 10932018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1094 1095 * gst-libs/gst/vaapi/gstvaapiimage.c: 1096 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 1097 * gst-libs/gst/vaapi/gstvaapisurface.c: 1098 libs: replace g_warning with GST_WARNING 1099 11002018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com> 1101 1102 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 1103 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 1104 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 1105 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c: 1106 libs: Move from g_debug to GST_DEBUG. 1107 https://bugzilla.gnome.org/show_bug.cgi?id=797202 1108 11092018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com> 1110 1111 * gst/vaapi/gstvaapipostproc.c: 1112 vaapipostproc: change the way of handling deinterlace 1113 The current vaapipostproc calls driver's video processing 1114 pipeline for deinterlacing only if it is Advance deinterlacing. 1115 Modify in the way that it always tries with driver's video 1116 processing pipeline for deinterlacing, and falls back to software 1117 method of appending picture structure meta data only if it fails 1118 with driver's method. 1119 https://bugzilla.gnome.org/show_bug.cgi?id=797095 1120 11212018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com> 1122 1123 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 1124 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 1125 libs: h264: Update level table to "Recommendation H.264 (04/17)". 1126 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits 1127 from T-REC-H.264-201704. 1128 https://bugzilla.gnome.org/show_bug.cgi?id=797202 1129 11302018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com> 1131 1132 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 1133 * gst-libs/gst/vaapi/gstvaapiprofile.c: 1134 * gst-libs/gst/vaapi/gstvaapiprofile.h: 1135 * gst-libs/gst/vaapi/gstvaapisurface.c: 1136 * gst-libs/gst/vaapi/gstvaapiutils.c: 1137 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 1138 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h: 1139 * gst-libs/gst/vaapi/video-format.c: 1140 * gst-libs/gst/vaapi/video-format.h: 1141 * gst/vaapi/gstvaapidecode.c: 1142 * gst/vaapi/gstvaapipluginbase.c: 1143 * gst/vaapi/gstvaapipluginutil.h: 1144 libs: dec: h265: add 422 chroma format support. 1145 Add main-422-10 profile which support 422 chroma format stream. 1146 Currently, this feature is only supported by media-driver in Icelake. 1147 https://bugzilla.gnome.org/show_bug.cgi?id=797143 1148 11492018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com> 1150 1151 * tests/y4mreader.c: 1152 tests: include sysdeps.h in compilation unit 1153 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204 1154 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> 1155 11562018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1157 1158 * tests/y4mreader.c: 1159 * tests/y4mreader.h: 1160 tests: fix compilation 1161 https://bugzilla.gnome.org/show_bug.cgi?id=797204 1162 11632018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1164 1165 * tests/y4mreader.h: 1166 tests: don's use sysdeps.h in header 1167 11682018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1169 1170 * gst-libs/gst/vaapi/gstvaapiutils.h: 1171 libs: utils: no need of include config.h 1172 11732018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1174 1175 * tests/decoder.c: 1176 * tests/output.c: 1177 * tests/test-decode.c: 1178 * tests/test-subpicture.c: 1179 tests: remove already include string.h 1180 Since sysdeps.h includes string.h there's no need to include it again. 1181 11822018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1183 1184 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 1185 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1186 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 1187 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 1188 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 1189 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 1190 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 1191 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 1192 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1193 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 1194 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 1195 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 1196 * gst-libs/gst/vaapi/gstvaapiimage.c: 1197 * gst-libs/gst/vaapi/gstvaapiprofile.c: 1198 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 1199 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 1200 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 1201 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 1202 libs: remove already include string.h 1203 Since sysdeps.h includes string.h there's no need to include it again. 1204 12052018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1206 1207 * gst-libs/gst/vaapi/gstvaapiobject.h: 1208 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 1209 * gst/vaapi/gstvaapivideometa_texture.c: 1210 libs: object: separation of internal API and plugins 1211 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and 1212 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal 1213 library usage. 1214 The purpose is readability. 1215 https://bugzilla.gnome.org/show_bug.cgi?id=797139 1216 12172018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1218 1219 * gst-libs/gst/vaapi/gstvaapiparser_frame.h: 1220 libs: parser_frame: change macros for inlined functions 1221 https://bugzilla.gnome.org/show_bug.cgi?id=797139 1222 12232018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1224 1225 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c: 1226 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 1227 * gst-libs/gst/vaapi/gstvaapivideopool.c: 1228 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: 1229 libs: videopool: remove unneeded code 1230 The removed code comes frome the bad practice of copy&paste. Better 1231 move it as internal function. 1232 https://bugzilla.gnome.org/show_bug.cgi?id=797139 1233 12342018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1235 1236 * gst-libs/gst/vaapi/Makefile.am: 1237 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 1238 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h: 1239 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 1240 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 1241 * gst-libs/gst/vaapi/gstvaapiobject.c: 1242 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 1243 * gst-libs/gst/vaapi/gstvaapipixmap.c: 1244 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: 1245 * gst-libs/gst/vaapi/gstvaapitexture.c: 1246 * gst-libs/gst/vaapi/gstvaapitexture_priv.h: 1247 * gst-libs/gst/vaapi/gstvaapiwindow.c: 1248 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 1249 * gst-libs/gst/vaapi/meson.build: 1250 libs: remove dependency on IN_LIBGSTVAAPI_CORE 1251 This conditional code was when libgstvaapi was intended to be library 1252 used outside GStreamer. This not the case anymore, thus removing it. 1253 https://bugzilla.gnome.org/show_bug.cgi?id=797139 1254 12552018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com> 1256 1257 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 1258 libs: dec: h265: fix the macros used for IDC profile 1259 profile_idc flag in SPS only indicate the IDC profile, which may 1260 need some other flags together to get the real profile. 1261 https://bugzilla.gnome.org/show_bug.cgi?id=797160 1262 12632018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com> 1264 1265 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1266 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 1267 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 1268 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 1269 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 1270 libs: use g_clear_pointer() when possible 1271 https://bugzilla.gnome.org/show_bug.cgi?id=797131 1272 12732018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1274 1275 * gst-libs/gst/vaapi/gstvaapifilter.h: 1276 libs: filter: add gobject's cleanup function 1277 12782018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1279 1280 * gst-libs/gst/vaapi/gstvaapifilter.c: 1281 * gst-libs/gst/vaapi/gstvaapifilter.h: 1282 * gst-libs/gst/vaapi/gstvaapisurface_egl.c: 1283 * tests/test-filter.c: 1284 libs: filter: remove custom ref() and unref() 1285 Replacing them by gst_object_ref() and gst_object_unref() 1286 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1287 12882018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1289 1290 * gst-libs/gst/vaapi/gstvaapifilter.c: 1291 * gst-libs/gst/vaapi/gstvaapifilter.h: 1292 libs: filter: refactor filter as gobject 1293 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1294 12952018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1296 1297 * gst-libs/gst/vaapi/gstvaapidecoder.c: 1298 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 1299 libs: decoder: remove destoy() and create() callbacks 1300 They were all replaced by reset() 1301 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1302 13032018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1304 1305 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 1306 libs: decoder: vp9: implement reset() callback 1307 remove destroy() and create() callback 1308 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1309 13102018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1311 1312 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 1313 libs: decoder: vp8: implement reset() callback 1314 remove create() and destroy() callbacks 1315 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1316 13172018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1318 1319 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 1320 libs: decoder: vc1: implement reset() callback 1321 remove destroy() and create() callbacks 1322 use g_clear_pointer for rbdu_buffer 1323 no cast for enum 1324 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1325 13262018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1327 1328 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 1329 libs: decoder: mpeg4: implement reset() callback 1330 remove destroy() and create() callback 1331 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1332 13332018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1334 1335 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 1336 libs: decoder: mpeg2: implement reset() callback 1337 remove create() and destroy() callbacks 1338 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1339 13402018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1341 1342 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 1343 libs: decoder: jpeg: implement reset() callback 1344 and remove create() and destroy() callbacks. 1345 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1346 13472018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1348 1349 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 1350 libs: decoder: h265: implement reset() callback 1351 and remove create() and destroy() 1352 and use g_clear_pointer for dpb structure 1353 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1354 13552018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1356 1357 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1358 libs: decoder: h264: remove create() and destroy() callbacks 1359 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1360 13612018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1362 1363 * gst-libs/gst/vaapi/gstvaapidecoder.c: 1364 * gst-libs/gst/vaapi/gstvaapidecoder.h: 1365 * tests/test-decode.c: 1366 * tests/test-subpicture.c: 1367 libs: decoder: remove gst_vaapi_decoder_unref() 1368 Replaced by gst_object_unref() in tests 1369 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1370 13712018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1372 1373 * gst-libs/gst/vaapi/gstvaapidecoder.c: 1374 * gst-libs/gst/vaapi/gstvaapidecoder.h: 1375 libs: decoder: remove gst_vaapi_decoder_ref() 1376 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1377 13782018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1379 1380 * gst-libs/gst/vaapi/gstvaapidecoder.c: 1381 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 1382 libs: decoder: remove gst_vaapi_decoder_new() 1383 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1384 13852018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1386 1387 * gst-libs/gst/vaapi/gstvaapidecoder.c: 1388 * gst-libs/gst/vaapi/gstvaapidecoder.h: 1389 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1390 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 1391 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 1392 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h: 1393 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 1394 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: 1395 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 1396 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 1397 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 1398 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 1399 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 1400 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 1401 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 1402 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 1403 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h: 1404 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 1405 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h: 1406 libs: decoder: refactor decoders as gobject 1407 https://bugzilla.gnome.org/show_bug.cgi?id=796308 1408 14092018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com> 1410 1411 * gst/vaapi/gstvaapidecode.c: 1412 vaapidecode: Requests upstream a key unit at parse or decode error. 1413 This is done to resume decoding after a parse error or decode error. 1414 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006 1415 14162018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com> 1417 1418 * gst/vaapi/gstvaapidecode.c: 1419 vaapidecode: sets return value in failure case. 1420 In gst_vaapidecode_handle_frame, when there is a decode error 1421 there is a code path the returns an uninitialized value. 1422 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006 1423 14242018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1425 1426 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1427 libs: display: lock at extracting available image formates 1428 When running several vaapi elements at the concurrently, at 1429 initialization, there is a race condition when extractin the avaible 1430 formats for images and subpictures. 1431 This patch add a lock when the those arrays are filled. 1432 https://bugzilla.gnome.org/show_bug.cgi?id=797039 1433 14342018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com> 1435 1436 * meson.build: 1437 meson: Sync libversion and osxversion code from other repos 1438 gstreamer-vaapi does not build any libraries, only plugins, so this is 1439 not used, but sync it just in case someone does add it in the future. 1440 14412018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1442 1443 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 1444 libs: encoder: h265: trivial documentation fix 1445 14462018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com> 1447 1448 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 1449 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 1450 libs: encoder: h265: add low delay B frame support. 1451 Low delay B frame provide the function of transforming 1452 P frame into low delay B frame which frame type is B, but 1453 only reference predictive frames. This can be used when P 1454 frame unsupported. Especially for P and B both unsupported, 1455 in this case, I and low delay B frame can be encoded in a 1456 stream. 1457 https://bugzilla.gnome.org/show_bug.cgi?id=796984 1458 14592018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1460 1461 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1462 libs: decoder: h264: Avoid using picture after it has been free 1463 In some cases, the found_picture ended up being evicted and freed, which 1464 would lead to a use after free when accessing picture->base.poc. In this 1465 fix, we take a ref on the picture before calling dpb_evict. 1466 https://bugzilla.gnome.org/show_bug.cgi?id=787124 1467 14682018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1469 1470 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1471 h264decoder: Fail decoding slice with missing inter-view reference 1472 Similarly to previous patch, we have no error concealment. As a side 1473 effect, it's better to skip slices with missing references then passing 1474 NULL pointers to the accelerator. Passing NULL pointer would lead to 1475 major visual artifact, a behaviour that is likely undefined. 1476 https://bugzilla.gnome.org/show_bug.cgi?id=787124 1477 14782017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com> 1479 1480 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1481 libs: decoder: h264: reset context when the number of view is increased 1482 Usually in case of MVC decoding, dpb size is increasedi if subset sps. 1483 That's why it resets context without this patch. 1484 But for some media it doesn't increase dpb size. Even in this case we 1485 should reset context to deal with MVC decoding. 1486 Otherwise, it leads to assert. 1487 https://bugzilla.gnome.org/show_bug.cgi?id=787124 1488 14892018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1490 1491 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1492 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 1493 * gst/vaapi/gstvaapidecode.c: 1494 vaapidecode: Skip unparsable units from adapter 1495 If the unit could not be parsed, just skip this nal and keep parsing 1496 what is left in the adapter. We need to flush the broken unit in the 1497 decoder specific parser because the generic code does not know about 1498 units boundary. This increases error resilliance. 1499 Before this, the broken unit would stay in the adapter and EOS would be 1500 returned. Which stopped the streaming. Just removing the EOS would have 1501 lead to the adapter size growing indefinitely. 1502 https://bugzilla.gnome.org/show_bug.cgi?id=796863 1503 15042018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1505 1506 * gst/vaapi/gstvaapidecode.c: 1507 vaapidecoder: Don't error out on decode errors 1508 This is problematic on live pipeline where loosing network can 1509 cause an important amount of errors. 1510 https://bugzilla.gnome.org/show_bug.cgi?id=796832 1511 15122018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1513 1514 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 1515 h265decoder: Don't scan empty buffer 1516 Same as what we did for H264 decoder, this is to avoid an assertion 1517 in the adapter. 1518 https://bugzilla.gnome.org/show_bug.cgi?id=796832 1519 15202018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1521 1522 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1523 libs: h264: renable the vaapi category for logging 1524 h264 log messages were logged in default category because a regression 1525 in code. This patch renable the usage of vaapi logging category. 1526 This regression was introduced in commit 7c365bdd. 1527 15282018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1529 1530 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1531 h264decoder: Fail decoding slice if modification process failed 1532 This patch chains up failure to executing the modification process. The 1533 end result is that we now fail decoding the slice if this process fails. 1534 This avoid sending a corrupted state to the accelerator. In some special 1535 cases, this could lead to unrecoverable errors. 1536 https://bugzilla.gnome.org/show_bug.cgi?id=796832 1537 15382018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1539 1540 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1541 h264decoder: Don't scan empty buffer 1542 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't 1543 try and scan in that case. This fixes assertion that would some times 1544 happen when the stream is corrupted. 1545 https://bugzilla.gnome.org/show_bug.cgi?id=796832 1546 15472018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com> 1548 1549 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 1550 libs: encoder: jpeg: set component id and Tqi 1551 This change is due a problem encoding JPEGs with Intel's 1552 media-driver: green/black image when playback jpeg 1553 This patch sets component identifier and quantization table 1554 destination selector in frame header to support packing headers 1555 by Intel's media-driver that does not accept packed header 1556 in AP level. 1557 https://bugzilla.gnome.org/show_bug.cgi?id=796705 1558 15592018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com> 1560 1561 * gst/vaapi/gstvaapipluginutil.c: 1562 pluginutil: downgrade unsupported driver logging 1563 On systems with an Nvidia card, this error is output each time 1564 the registry is rebuilt, which happens pretty often when 1565 using gst-build as a development environment. 1566 https://bugzilla.gnome.org/show_bug.cgi?id=796663 1567 15682018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com> 1569 1570 * gst/vaapi/gstvaapivideobufferpool.c: 1571 Update for g_type_class_add_private() deprecation in recent GLib 1572 15732018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1574 1575 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1576 h264dec: Remove false assumption about parity order 1577 The decoder was trying to detect earlier that a field was lost base 1578 on guessing the parity order. This breaks in streams were the parity 1579 order changes. 1580 This patch reverts the field order prediction code added by commit 1581 8dd93e9c8. 1582 https://bugzilla.gnome.org/show_bug.cgi?id=796169 1583 15842018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 1585 1586 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1587 h264dec: Properly set sentinel in ref frame list 1588 This ensure that we always have sentinels set in the reference 1589 pictures arrays. The code wasn't unsafe, this simply improve the 1590 tracing, so instead of printing 32 lines of zeros, va tracer 1591 prints proper empty lists. 1592 https://bugzilla.gnome.org/show_bug.cgi?id=796169 1593 15942018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1595 1596 * gst-libs/gst/vaapi/gstvaapidecoder.c: 1597 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1598 * gst-libs/gst/vaapi/gstvaapidisplay.h: 1599 * gst-libs/gst/vaapi/gstvaapiencoder.c: 1600 * gst-libs/gst/vaapi/gstvaapifilter.c: 1601 * gst-libs/gst/vaapi/gstvaapiobject.c: 1602 * gst-libs/gst/vaapi/gstvaapivideopool.c: 1603 * gst/vaapi/gstvaapipluginbase.c: 1604 * gst/vaapi/gstvaapivideometa.c: 1605 * tests/test-decode.c: 1606 libs: display: remove gst_vaapi_display_ref() 1607 Replace it with gst_object_ref() 1608 https://bugzilla.gnome.org/show_bug.cgi?id=796470 1609 16102018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1611 1612 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1613 * gst-libs/gst/vaapi/gstvaapidisplay.h: 1614 * gst/vaapi/gstvaapi.c: 1615 * gst/vaapi/gstvaapidecode.c: 1616 * gst/vaapi/gstvaapiencode.c: 1617 * gst/vaapi/gstvaapipluginbase.c: 1618 * gst/vaapi/gstvaapipluginutil.c: 1619 * tests/output.c: 1620 * tests/simple-encoder.c: 1621 * tests/test-decode.c: 1622 * tests/test-display.c: 1623 * tests/test-fei-enc-in.c: 1624 * tests/test-filter.c: 1625 * tests/test-subpicture.c: 1626 * tests/test-surfaces.c: 1627 * tests/test-textures.c: 1628 * tests/test-windows.c: 1629 libs: display: remove gst_vaapi_display_unref() 1630 Use gst_object_unref() instead. 1631 https://bugzilla.gnome.org/show_bug.cgi?id=796470 1632 16332018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1634 1635 * gst/vaapi/gstvaapivideobufferpool.c: 1636 vaapibufferpool: declare parameter display as object 1637 We have neglected to update this code since GstVaapiDisplay turned 1638 into a GstObject descendant. 1639 https://bugzilla.gnome.org/show_bug.cgi?id=796470 1640 16412018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com> 1642 1643 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1644 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 1645 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 1646 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 1647 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 1648 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 1649 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 1650 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config() 1651 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1. 1652 But still something breaking GObject code convention remains, which is 1653 calling gst_vaapi_display_new() in each decendants. 1654 This patch replaces it with gst_vaapi_display_config(), defined in private 1655 header. 1656 https://bugzilla.gnome.org/show_bug.cgi?id=796470 1657 16582018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1659 1660 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1661 libs: display: redefine gst_vaapi_display_create() 1662 The function name was gst_vaapi_display_create_unlocked(), nonetheless 1663 it wasn't called unlocked. In order to keep the semantics this patch 1664 renames the gst_vaapi_display_create_unlocked() as 1665 gst_vaapi_display_create(), removing the previous function 1666 gst_vaapi_display_create(). 1667 https://bugzilla.gnome.org/show_bug.cgi?id=796470 1668 16692018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1670 1671 * meson.build: 1672 Revert "build: meson: libva gst-uninstall friendly" 1673 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30. 1674 16752018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1676 1677 * gst/vaapi/gstvaapipluginutil.c: 1678 plugins: fix compilation 1679 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition] 1680 16812018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1682 1683 * meson.build: 1684 build: meson: libva gst-uninstall friendly 1685 Make gstreamer-vaapi to use libva uninstalled. 1686 16872018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1688 1689 * gst/vaapi/gstvaapipluginutil.c: 1690 plugins: refactor gst_vaapi_create_display_from_gl_context() 1691 gst_vaapi_create_display_from_gl_context() was a spaghetti mess. 1692 This path refactors it, in order to make the code readable and 1693 easy to follow. 1694 https://bugzilla.gnome.org/show_bug.cgi?id=796564 1695 16962018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1697 1698 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1699 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 1700 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 1701 libs: display: resurrect parent private member 1702 This is, practically, a revert of commit dcf135e2. 1703 The parent logic is useful for the EGL display, which is a decorator 1704 of the real windowing subsystem (X11 or Wayland). Thus it is avoided 1705 calling vaInitialize() and vaTerminate() twice. 1706 https://bugzilla.gnome.org/show_bug.cgi?id=795391 1707 17082018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1709 1710 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 1711 libs: display: egl: initialize params structure 1712 Statically initialise the internal params structure. 1713 https://bugzilla.gnome.org/show_bug.cgi?id=795391 1714 17152018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1716 1717 * gst/vaapi/gstvaapipluginutil.c: 1718 plugins: handle EGL when creating VAAPI display from gl 1719 If GstGL reports a EGL platform force to create a EGL display using 1720 the native EGL display. 1721 https://bugzilla.gnome.org/show_bug.cgi?id=795391 1722 17232018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com> 1724 1725 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 1726 * gst/vaapi/gstvaapipluginutil.c: 1727 display: egl: create VaapiDisplayEGL with native EGL display 1728 gst_vaapi_display_egl_new_with_native_display() has been broken since 1729 it wasn't used. 1730 Currently it's needed to call this API to create a display providing 1731 the EGL display, so it could avoid duplicated calls to the native 1732 display (eg. eglTerminate). 1733 Signed-off-by: Victor Jaquez <vjaquez@igalia.com> 1734 https://bugzilla.gnome.org/show_bug.cgi?id=795391 1735 17362018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com> 1737 1738 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 1739 libs: decoder: release VA buffers after vaEndPicture 1740 This change is due a problem decoding JPEGs with Intel's media-driver: 1741 no image was generated. 1742 This patch relases the VA buffers after vaEndPicture() is called, 1743 and not before (after vaRenderPicture()). 1744 https://bugzilla.gnome.org/show_bug.cgi?id=796505 1745 17462018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com> 1747 1748 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 1749 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 1750 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 1751 meson: fix build when xrender or xrandr are not available 1752 HAVE_XRENDER are defined to 1 or 0, not defined or undefined. 1753 17542018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de> 1755 1756 * gst/vaapi/gstvaapipostproc.c: 1757 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp 1758 Otherwise a reference to a DMABuf input buffer is kept until the output 1759 buffer is deleted. 1760 https://bugzilla.gnome.org/show_bug.cgi?id=796399 1761 17622018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com> 1763 1764 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1765 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 1766 libs: display: remove unnecessary legacy code since gobjectification 1767 https://bugzilla.gnome.org/show_bug.cgi?id=796470 1768 17692018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com> 1770 1771 * gst-libs/gst/vaapi/gstvaapidisplay.c: 1772 * gst-libs/gst/vaapi/gstvaapidisplay.h: 1773 libs: display: remove unused code 1774 https://bugzilla.gnome.org/show_bug.cgi?id=796470 1775 17762018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1777 1778 * gst/vaapi/gstvaapiencode_h264.c: 1779 vaapiencode: h264: log output caps 1780 17812018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1782 1783 * gst/vaapi/gstvaapiencode_h264.c: 1784 vaapiencode: h264: find profile in available and allowed caps 1785 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264: 1786 find best profile in those available") changed the code to pick a profile 1787 that is actually supported by the hardware. Unfortunately it dropped the 1788 downstream constraints. This can cause negotiation failures under certain 1789 circumstances. 1790 The fix is split in two cases: 1791 1\ the available VA-API caps doesn't intersect with pipeline's allowed 1792 caps: 1793 * The best allowed profile (pipeline's caps) is set as the encoding 1794 target profile (it will be adjusted later by the available profiles 1795 and properties) 1796 2\ the available VA-API caps does intersect with pipeline's allowed 1797 caps: 1798 * The intersected caps are fixed, and its profile is set as the 1799 encoding target profile. In this case the is not the best profile, 1800 but the minimal one (if VA-API reports the profiles in order). 1801 Setting the minimal profile of the intersected caps is better for 1802 compatibility. 1803 This patch fixes other tests related with caps negotiation, for 1804 example, it handles baseline profile, even when VA only supports 1805 constrained-baseline. 1806 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de> 1807 https://bugzilla.gnome.org/show_bug.cgi?id=794306 1808 18092018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com> 1810 1811 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 1812 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec 1813 The specification says, 1814 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive." 1815 This patch changes the upper limit from 6 to 12. 1816 https://bugzilla.gnome.org/show_bug.cgi?id=796179 1817 18182018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1819 1820 * gst/vaapi/gstvaapipluginutil.c: 1821 plugins: guard GstGL code 1822 18232018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1824 1825 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 1826 libs: decoder: h264: use g_clear_pointer() 1827 18282018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1829 1830 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 1831 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 1832 libs: decoder: mpeg4, vc1: remove unused header 1833 18342018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1835 1836 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 1837 libs: decoder: remove unused forward declaration 1838 18392018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com> 1840 1841 * configure.ac: 1842 fix configure.ac regression 1843 Fixes regression introduced by 77527d67abe 1844 https://bugzilla.gnome.org/show_bug.cgi?id=795885 1845 18462018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1847 1848 * gst-libs/gst/Makefile.am: 1849 * gst-libs/gst/base/Makefile.am: 1850 * gst-libs/gst/base/gstbitwriter.c: 1851 * gst-libs/gst/base/gstbitwriter.h: 1852 * gst-libs/gst/base/meson.build: 1853 * gst-libs/gst/meson.build: 1854 * gst-libs/gst/vaapi/Makefile.am: 1855 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 1856 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 1857 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 1858 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 1859 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 1860 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c: 1861 * gst-libs/gst/vaapi/meson.build: 1862 libs: remove gstbitwriter 1863 Since it is deployed in gstreamer-core, there is no need to use 1864 our custom version. 1865 https://bugzilla.gnome.org/show_bug.cgi?id=795848 1866 18672018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com> 1868 1869 * gst/vaapi/gstvaapidecode.c: 1870 vaapih264dec: add constrained and progressive profiles 1871 Those profiles have been added in the version 2012-01 1872 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2). 1873 Both are supported by VAProfileH264High 1874 https://bugzilla.gnome.org/show_bug.cgi?id=795624 1875 18762018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1877 1878 * gst/vaapi/gstvaapipluginbase.c: 1879 * gst/vaapi/gstvaapipluginutil.c: 1880 * gst/vaapi/gstvaapivideocontext.c: 1881 * gst/vaapi/gstvaapivideocontext.h: 1882 plugin: remove custom GstGL context handling 1883 Instead of using our own context handling for looking for GstGL 1884 parameters (display, context and other context), this patch changes 1885 the logic to use the utility function offered by GstGL. 1886 https://bugzilla.gnome.org/show_bug.cgi?id=793643 1887 18882018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1889 1890 * gst/vaapi/gstvaapipluginbase.c: 1891 plugins: GstGL API must use the member variables 1892 This commit basically is a revert of commits 8092537 and fc1c415 1893 https://bugzilla.gnome.org/show_bug.cgi?id=793643 1894 18952018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com> 1896 1897 * gst/vaapi/gstvaapipluginbase.c: 1898 plugins: pass members as parameters of gst_gl_ensure_element_data() 1899 The parameters of gst_gl_ensure_element_data() have to be not 1900 local variable since they are going to be used to see if they're 1901 set in gst_element_set_context() inside the API. 1902 This is basically a revert of commit 3d56306c 1903 https://bugzilla.gnome.org/show_bug.cgi?id=793643 1904 19052018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1906 1907 * meson.build: 1908 meson: fix USE_GLES_VERSION_MASK 1909 1. The macro in the code is USE_GLES_VERSION_MASK 1910 2. glesv3 is provided by glesv2 pkg-config, then it's required to 1911 check headers 1912 https://bugzilla.gnome.org/show_bug.cgi?id=795391 1913 19142018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com> 1915 1916 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 1917 libs: egl: utils: mark context as wrapped when it is 1918 The returning egl context may be null, so we should check the 1919 return value. 1920 https://bugzilla.gnome.org/show_bug.cgi?id=795391 1921 19222018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1923 1924 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 1925 libs: egl: utils: fix usage of GstGL macros 1926 Include gl.h for the required GstGL symbols. 1927 https://bugzilla.gnome.org/show_bug.cgi?id=795391 1928 19292018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com> 1930 1931 * meson.build: 1932 meson: use -Wl,-Bsymbolic-functions where supported 1933 Just like the autotools build. 1934 19352018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 1936 1937 * meson.build: 1938 meson: use get_pkgconfig_variable() 1939 Use get_pkgconfig_variable() method, of dependency class, rather 1940 than using run_command(). 1941 19422018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com> 1943 1944 * gst-libs/gst/base/meson.build: 1945 * gst-libs/gst/vaapi/meson.build: 1946 * meson.build: 1947 meson: fix miscellaneous meson warnings 1948 WARNING: Passed invalid keyword argument "rqeuired". 1949 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version". 1950 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion". 1951 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version". 1952 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion". 1953 19542018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com> 1955 1956 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 1957 display: drm: Allow finding DRM paths out of the PCI subsystem 1958 This removes hard-coded checks on the parent subsystem of potential DRM 1959 devices. These checks were set to exlude devices that do not originate 1960 from the PCI bus, which is only a valid approach on x86 devices. 1961 Other devices may have a DRM device originating from the platform 1962 subsystem, so the checks that were previously restricted to PCI are 1963 extended to cover platform devices as well. 1964 https://bugzilla.gnome.org/show_bug.cgi?id=794840 1965 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> 1966 19672017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com> 1968 1969 * gst/vaapi/gstvaapivideocontext.c: 1970 videocontext: support wl-display in "gst.vaapi.app.Display" 1971 Through "gst.vaapi.app.Display" context, users can set their own 1972 VADisplay and native display of their backend. 1973 So far we support only X11 display, from now we also support Wayland 1974 display. 1975 Attributes: 1976 - wl-display : pointer of struct wl_display . 1977 https://bugzilla.gnome.org/show_bug.cgi?id=705821 1978 19792017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com> 1980 1981 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 1982 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 1983 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display() 1984 Implements new API function so that users could create GstVaapiDisplay 1985 with their own VADisplay within a native display as backend. 1986 https://bugzilla.gnome.org/show_bug.cgi?id=705821 1987 19882018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de> 1989 1990 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 1991 wayland: don't poll if there are no pending frames 1992 Otherwise the following poll may not return for an arbitrary amount of 1993 time. This can happen if another wayland event queue has flushed and read 1994 our events. 1995 https://bugzilla.gnome.org/show_bug.cgi?id=795224 1996 19972017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com> 1998 1999 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 2000 libs: encoder: h265: 16 bit rounding of picture width and height 2001 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded 2002 instead of 32-bit. 2003 In addition, codedbuf_size must be calculated according to this change. 2004 https://bugzilla.gnome.org/show_bug.cgi?id=753229 2005 20062018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com> 2007 2008 * common: 2009 Automatic update of common submodule 2010 From 3fa2c9e to ed78bee 2011 20122018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2013 2014 * gst/vaapi/gstvaapiencode_h264.c: 2015 vaapiencode: h264: find best profile in those available 2016 Instead to look for the best profile in the allowed profiles by 2017 downstream, the encoder should look for the base profile in the 2018 available profile in VA-API. 2019 https://bugzilla.gnome.org/show_bug.cgi?id=794306 2020 20212018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com> 2022 2023 * NEWS: 2024 * RELEASE: 2025 * configure.ac: 2026 * docs/plugins/inspect/plugin-vaapi.xml: 2027 * meson.build: 2028 Back to development 2029 2030=== release 1.14.0 === 2031 20322018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com> 2033 2034 * ChangeLog: 2035 * NEWS: 2036 * configure.ac: 2037 * gstreamer-vaapi.doap: 2038 * meson.build: 2039 Release 1.14.0 2040 20412018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com> 2042 2043 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 2044 libs: decoder: h264: ensure num_ref_frames is greater than 0 2045 Even if it is the h264parse fault or bad video file, vaapih264dec 2046 should set a proper value for VAPictureParameterBufferH264.num_ref_frames 2047 as the driver might use it. 2048 Also see "info.ref_frames = dpb_size;" in 2049 gstvaapidecoder_h264.c::ensure_context 2050 https://bugzilla.gnome.org/show_bug.cgi?id=793836 2051 2052=== release 1.13.91 === 2053 20542018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com> 2055 2056 * ChangeLog: 2057 * NEWS: 2058 * configure.ac: 2059 * gstreamer-vaapi.doap: 2060 * meson.build: 2061 Release 1.13.91 2062 2063=== release 1.13.90 === 2064 20652018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com> 2066 2067 * ChangeLog: 2068 * NEWS: 2069 * configure.ac: 2070 * gstreamer-vaapi.doap: 2071 * meson.build: 2072 Release 1.13.90 2073 20742018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2075 2076 * gst/vaapi/gstvaapipostproc.c: 2077 vaapipostproc: change how the metadata is copied 2078 Instead of copying the metada in prepare_output_buffer() vmethod, 2079 it is done in append_output_buffer_metadata() thus deinterlaced 2080 buffers could also have the proper metas. 2081 GstVideoCropMeta now it is copied internally and it is decided via 2082 transform_meta() vmethod. 2083 A new internal method, copy_metadata() was added to handle VPP 2084 transformation where non-GstVideoVaapiMeta metas were lost. 2085 20862018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> 2087 2088 * gst/vaapi/gstvaapipostproc.c: 2089 postproc: Copy meta data from input to output 2090 This will ensure that meta data without memory tags will be copied. This 2091 was noticed when testing ROI. 2092 https://bugzilla.gnome.org/show_bug.cgi?id=768248 2093 20942018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2095 2096 * tests/elements/test-roi.c: 2097 tests: element: rewrite ROI test 2098 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather 2099 than injecting GstEvents. These meta are added as a pad probe in 2100 the queue src pad. 2101 Also 2102 * Use of navigation messages to control de test 2103 * Use signal watch for processing messages 2104 * Change to H265 rather than H264 since current intel-vaapi-driver 2105 only supports ROI on kabylake. 2106 TODO: add a parameter to change the encoder/decoder to test. 2107 https://bugzilla.gnome.org/show_bug.cgi?id=768248 2108 21092018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2110 2111 * gst-libs/gst/vaapi/gstvaapicontext.c: 2112 * gst-libs/gst/vaapi/gstvaapiencoder.c: 2113 * gst-libs/gst/vaapi/gstvaapiencoder.h: 2114 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2115 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 2116 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 2117 libs: encoder: reimplement ROI using meta 2118 Check input buffers for ROI metas and pass them to VA. Also added a 2119 new "default-roi-delta-qp" property in order to tell the encoder what 2120 delta QP should be applied to ROI by default. 2121 Enabled it for H264 and H265 encoders. 2122 https://bugzilla.gnome.org/show_bug.cgi?id=768248 2123 21242018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2125 2126 * gst-libs/gst/vaapi/gstvaapiencoder.c: 2127 * gst-libs/gst/vaapi/gstvaapiencoder.h: 2128 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 2129 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi" 2130 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8. 2131 https://bugzilla.gnome.org/show_bug.cgi?id=768248 2132 21332018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2134 2135 * tests/simple-encoder.c: 2136 Revert "tests: simple-encoder: add an option to set ROI" 2137 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04. 2138 https://bugzilla.gnome.org/show_bug.cgi?id=768248 2139 21402018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2141 2142 * gst/vaapi/gstvaapiencode.c: 2143 * gst/vaapi/gstvaapiencode_h264.c: 2144 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest" 2145 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1. 2146 https://bugzilla.gnome.org/show_bug.cgi?id=768248 2147 21482018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2149 2150 * gst/vaapi/gstvaapipluginbase.c: 2151 plugins: copy input buffer metas 2152 When importing buffers to a VA-base buffer, it is required to copy 2153 the metas in the original buffer, otherwise information will be 2154 lost, such as GstVideoRegionOfInterestMeta. 2155 https://bugzilla.gnome.org/show_bug.cgi?id=768248 2156 21572018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2158 2159 * gst-libs/gst/vaapi/gstvaapisurface.c: 2160 libs: surface: cast to uintptr_t pointer 2161 According to Debian package auto-building, uintptr_t is not an 2162 unsigned long in i386 arch, raising an "incompatible pointer type" 2163 error. 2164 This patch adds a casting for compiler's satisfaction in i386. 2165 21662018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com> 2167 2168 * gst-libs/gst/vaapi/gstvaapiencoder.c: 2169 libs: encoder: add zero as valid value for periodic keyframe. 2170 Enabled zero as valid value for keyframe-period property. 2171 https://bugzilla.gnome.org/show_bug.cgi?id=793829 2172 21732018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2174 2175 * gst-libs/gst/vaapi/gstvaapiencoder.c: 2176 libs: encoder: code-style fix 2177 21782018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2179 2180 * gst/vaapi/gstvaapidecode.c: 2181 vaapidecode: generate system allocated buffers 2182 Generate system allocated output buffers when downstream doesn't 2183 support GstVideoMeta. 2184 The VA buffer content is copied to the new output buffer, and it 2185 replaces the VA buffer. 2186 https://bugzilla.gnome.org/show_bug.cgi?id=785054 2187 21882018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2189 2190 * gst/vaapi/gstvaapipostproc.c: 2191 vaapipostproc: handle system allocated buffers when required 2192 When downstream can't handle GstVideoMeta it is required to send 2193 system allocated buffers. 2194 The system allocated buffers are produced in prepare_output_buffer() 2195 vmethod if downstream can't handl GstVideoMeta. 2196 At transform() vmethod if the buffer is a system allocated buffer, 2197 a VA buffer is instanciated and replaces the out buffer. Later 2198 the VA buffer is copied to the system allocate buffer and it 2199 replaces the output buffer. 2200 https://bugzilla.gnome.org/show_bug.cgi?id=785054 2201 22022018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2203 2204 * gst/vaapi/gstvaapipluginbase.c: 2205 * gst/vaapi/gstvaapipluginbase.h: 2206 plugins: add gst_vaapi_copy_va_buffer() 2207 This helper function aims to copy buffers with VA memory to dumb 2208 buffers, when GstVideoMeta is not available dowstream. 2209 https://bugzilla.gnome.org/show_bug.cgi?id=785054 2210 22112018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2212 2213 * gst/vaapi/gstvaapipluginbase.c: 2214 * gst/vaapi/gstvaapipluginbase.h: 2215 plugins: add COPY_OUTPUT_FRAME flag 2216 This patch add the member copy_output_frame and set it TRUE when 2217 when downstream didn't request GstVideoMeta API, the caps are raw 2218 and the internal allocator is the VA-API one. 2219 https://bugzilla.gnome.org/show_bug.cgi?id=785054 2220 22212018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2222 2223 * gst/vaapi/gstvaapipluginbase.c: 2224 * gst/vaapi/gstvaapipluginbase.h: 2225 plugins: store the first downstream allocator if available 2226 The allocator will be required if we need to allocate a buffer 2227 to store the frame with the expected strides. 2228 https://bugzilla.gnome.org/show_bug.cgi?id=785054 2229 22302018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2231 2232 * gst/vaapi/gstvaapivideobufferpool.c: 2233 * gst/vaapi/gstvaapivideobufferpool.h: 2234 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer() 2235 This function will inform the element if it shall copy the generated 2236 buffer by the pool to a system allocated buffer before pushing it 2237 to downstream. 2238 https://bugzilla.gnome.org/show_bug.cgi?id=785054 2239 22402018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2241 2242 * gst/vaapi/gstvaapivideobufferpool.c: 2243 vaapibufferpool: don't change config when forcing video meta 2244 VA-API based buffer might need a video meta because of different 2245 strides. But when donwstream doesn't support video meta we need to 2246 force the usage of video meta. 2247 Before we changed the buffer pool configuration, but actually this 2248 is a hack and we cannot rely on that for downstream. 2249 This patch add a check fo raw video caps and allocator is VA-API, 2250 then the option is enabled without changing the pool configuration. 2251 In this case the element is responsible to copy the frame to a 2252 simple buffer with the expected strides. 2253 https://bugzilla.gnome.org/show_bug.cgi?id=785054 2254 22552018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2256 2257 * gst/vaapi/gstvaapipostproc.c: 2258 vaapipostproc: set discont flag at vpp deinterlacing 2259 When deinterlacing with VPP the discont flag was not forwarded to 2260 the new created buffer. This patch sets the discont flag if input 2261 buffer has it. 2262 22632018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2264 2265 * gst/vaapi/gstvaapivideobufferpool.h: 2266 vaapibufferpool: remove wrong gcc annotation 2267 22682018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com> 2269 2270 * gst-libs/gst/vaapi/gstvaapiencoder.c: 2271 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2272 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 2273 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 2274 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c: 2275 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c: 2276 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h: 2277 libs: encoder: h264,h265: extend max periodic keyframe. 2278 Increased max values of periodic key frame for h26x codecs. 2279 This allow more fine tunning of encoder that in certian scenario 2280 want higher periodic key frame. 2281 For example: it doesn't want a key frame each 10 seconds but 2282 each 120 seconds. 2283 https://bugzilla.gnome.org/show_bug.cgi?id=786320 2284 22852018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com> 2286 2287 * configure.ac: 2288 * meson.build: 2289 Back to development 2290 2291=== release 1.13.1 === 2292 22932018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com> 2294 2295 * Makefile.am: 2296 * NEWS: 2297 * configure.ac: 2298 * gstreamer-vaapi.doap: 2299 * meson.build: 2300 Release 1.13.1 2301 23022018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com> 2303 2304 * gst/vaapi/Makefile.am: 2305 vaapi: dist new header 2306 23072018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2308 2309 * gst/vaapi/gstvaapi.c: 2310 vaapi: register vaapisink as marginal on wayland 2311 vaapsink, when used with the Intel VA-API driver, tries to display 2312 surfaces with format NV12, which are handled correctly by 2313 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail 2314 pipelines on mutter. 2315 This shall be solved either by COGL or by making the driver to paint 2316 RGB surfaces. In the meanwhile, let's just demote vaapisink as 2317 marginal when the Wayland environment is detected, no matter if it is 2318 Weston. 2319 https://bugzilla.gnome.org/show_bug.cgi?id=775698 2320 23212018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2322 2323 * gst/vaapi/gstvaapipluginutil.c: 2324 plugins: update mesa's vendor string in whitelist 2325 Mesa has updated its VA-API Gallium driver vendor string: 2326 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a 2327 This patch tries to cover both, the old and the new one. 2328 https://bugzilla.gnome.org/show_bug.cgi?id=793386 2329 23302018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com> 2331 2332 * meson.build: 2333 meson: make version numbers ints and fix int/string comparison 2334 WARNING: Trying to compare values of different types (str, int). 2335 The result of this is undefined and will become a hard error 2336 in a future Meson release. 2337 23382018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2339 2340 * gst/vaapi/gstvaapipluginbase.c: 2341 plugins: handle vaapi allocator in allocation query 2342 In propose_allocation() if the numer of allocation params is zero, the 2343 system's allocator is added first, and lastly the native VA-API 2344 allocator. 2345 In decide_allocation(), the allocations params in query are travered, 2346 looking for a native VA-API allocator. If it is found, it is reused as 2347 src pad allocator. Otherwise, a new allocator is instantiated and 2348 appended in the query. 2349 https://bugzilla.gnome.org/show_bug.cgi?id=789476 2350 23512018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2352 2353 * gst/vaapi/gstvaapivideomemory.h: 2354 vaapivideomemory: remove unused macro 2355 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it 2356 was never used, since the native VA-API allocator name has been 2357 GST_VAAPI_VIDEO_MEMORY_NAME. 2358 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro. 2359 https://bugzilla.gnome.org/show_bug.cgi?id=789476 2360 23612018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru> 2362 2363 * gst/vaapi/gstvaapisink.c: 2364 vaapisink: don't mask button events for foreign windows 2365 Don't subscribe to button press events when using a foreing window, 2366 because the user created window would trap those events, preveting the 2367 show of frames. 2368 https://bugzilla.gnome.org/show_bug.cgi?id=791615 2369 23702018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com> 2371 2372 * configure.ac: 2373 autotools: use -fno-strict-aliasing where supported 2374 https://bugzilla.gnome.org/show_bug.cgi?id=769183 2375 23762018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com> 2377 2378 * meson.build: 2379 meson: use -fno-strict-aliasing where supported 2380 https://bugzilla.gnome.org/show_bug.cgi?id=769183 2381 23822018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com> 2383 2384 * gst/vaapi/gstvaapi.c: 2385 vaapi: add NULL-sentinel to kernel_names 2386 The array needs to be NULL-terminated according to the 2387 gst_plugin_add_dependency() documentation. 2388 23892018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2390 2391 * gst/vaapi/gstvaapipostprocutil.c: 2392 vaapipostproc: remove spurious code 2393 This assignation is dead code, since gst_video_info_from_caps() set 2394 to 1 by default. 2395 https://bugzilla.gnome.org/show_bug.cgi?id=790149 2396 23972018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2398 2399 * gst/vaapi/gstvaapipostprocutil.c: 2400 vaapipostproc: if no p-a-r in out caps define a range 2401 Instead of copying the pixel-aspect-ratio from the sink caps, define 2402 an open range for the src caps pixel-aspect-ratio. Later it will be 2403 defined. 2404 https://bugzilla.gnome.org/show_bug.cgi?id=790149 2405 24062018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2407 2408 * gst/vaapi/gstvaapisink.c: 2409 vaapisink: check for display's color-balance properties 2410 Check for display's color-balance properties, available by the VA-API 2411 driver, before setting them. 2412 Also logs an info message of those unavailable properties. 2413 https://bugzilla.gnome.org/show_bug.cgi?id=792638 2414 24152018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2416 2417 * gst/vaapi/gstvaapipluginbase.c: 2418 plugins: re-using buffer pool breaks renegotiation 2419 at propose_allocation() we should not reuse the proposed buffer, 2420 because it could break renegotiation. 2421 https://bugzilla.gnome.org/show_bug.cgi?id=792620 2422 24232018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2424 2425 * gst/vaapi/gstvaapipluginbase.c: 2426 plugins: use g_clear_object() to unref sinkpad_buffer_pool 2427 https://bugzilla.gnome.org/show_bug.cgi?id=792620 2428 24292018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2430 2431 * gst-libs/gst/vaapi/meson.build: 2432 build: meson: add missing GstGL dependency 2433 24342018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2435 2436 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 2437 libs: utils: egl: add missing guards for GstGL 2438 24392018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2440 2441 * gst/vaapi/gstvaapipluginbase.c: 2442 plugins: remove dmabuf-import hack 2443 Remove the hack to check if an upstream element has enabled the 2444 property io-mode enabled as dmabuf-import. 2445 https://bugzilla.gnome.org/show_bug.cgi?id=792034 2446 24472017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2448 2449 * gst-libs/gst/vaapi/Makefile.am: 2450 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 2451 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 2452 * gst-libs/gst/vaapi/gstvaapiutils_egl.h: 2453 libs: egl: utils: use eglGetPlatformDisplay() 2454 eglGetDisplay() is currently broken in Mesa for Wayland. Also using 2455 eglGetDisplay() is rather fragile, and it is recommended to use 2456 eglGetPlatformDisplay() when possible. 2457 In order to do that, this patch uses the helper in GstGL. If 2458 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay() 2459 will be used. 2460 https://bugzilla.gnome.org/show_bug.cgi?id=790493 2461 24622017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de> 2463 2464 * gst/vaapi/gstvaapipostproc.c: 2465 vaapipostproc: lock ensure_filter with postproc_lock 2466 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps 2467 and allowed_sinkpad_caps. This can race with copying these caps in 2468 gst_vaapipostproc_transform_caps and lead to segfaults. 2469 The gst_vaapipostproc_transform_caps function already locks 2470 postproc_lock before copying the caps. Make sure that calls to 2471 gst_vaapipostproc_ensure_filter also acquire this lock. 2472 https://bugzilla.gnome.org/show_bug.cgi?id=791404 2473 24742018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2475 2476 * tests/test-filter.c: 2477 tests: test-filter: fix dereference before null check 2478 Null-checking op_info suggests that it may be null, but it has already 2479 been dereferenced on all paths leading to the check. 2480 There may be a null pointer dereference, or else the comparison 2481 against null is unnecessary. 2482 24832018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2484 2485 * tests/y4mreader.c: 2486 tests: y4mreader: fix string state checkup 2487 str cannot be null in that moment, but it may be the end of string. 2488 24892018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2490 2491 * tests/y4mreader.c: 2492 tests: y4mreader: use int for fgetc 2493 Assigning the return value of fgetc to char truncates its value. 2494 It will not be possible to distinguish between EOF and a valid 2495 character. 2496 24972018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2498 2499 * tests/y4mreader.c: 2500 tests: y4mreader: fix incompatible cast 2501 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but 2502 they are dereferenced as a wider long (64 bits, signed). This may lead 2503 to memory corruption. 2504 25052017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com> 2506 2507 * meson.build: 2508 meson: fix fallback for gstreamer-gl-1.0, it's now in -base 2509 25102017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com> 2511 2512 * common: 2513 Automatic update of common submodule 2514 From e8c7a71 to 3fa2c9e 2515 25162017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> 2517 2518 * gst/vaapi/gstvaapivideocontext.c: 2519 videoconvert: gst_element_post_message() is transfer full on msg 2520 For this reson we need not to unref the message, even if it failed. 2521 25222017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com> 2523 2524 * gst/vaapi/gstvaapivideocontext.c: 2525 Revert "vaapivideocontext: possible memleak when no bus attached" 2526 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa. 2527 25282017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2529 2530 * tests/elements/test-vaapicontext.c: 2531 test: vaapicontext: process have-context bus message 2532 25332017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2534 2535 * tests/elements/test-vaapicontext.c: 2536 test: vaapicontext: app context is not persistent 2537 25382017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2539 2540 * gst/vaapi/gstvaapipluginbase.c: 2541 * gst/vaapi/gstvaapivideocontext.c: 2542 * gst/vaapi/gstvaapivideocontext.h: 2543 vaapivideocontext: only vaapisink process app context 2544 gst.vaapi.app.Display context is made for applications that will 2545 provide the VA display and the native display to used by the 2546 pipeline, when are using vaapisink as overlay. There are no use 2547 case for encoders, decoders, neither for the postprocessor. 2548 In the case of the vaapisink, it shall query for gst.vaapi.Display 2549 upstream first, and then, if there is no reply, 2550 gst.vaapi.app.Display context will be posted in the bus for the 2551 application. If the application replies, a GstVaapiDisplay object 2552 is instantiated given the context info, otherwise a 2553 GstVaapiDisplay is created with the normal algorithm to guess the 2554 graphics platform. Either way, the instantiated GstVaapiDisplay 2555 is propagated among the pipeline and the have-message bus message. 2556 Also only vaapisink will process the gst.vaapi.app.Display, if 2557 and only if, it doesn't have a display already set. This is 2558 caused because if vaapisink is in a bin (playsink, for example) 2559 the need-context is posted twice, leading to an error state. 2560 https://bugzilla.gnome.org/show_bug.cgi?id=790999 2561 25622017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2563 2564 * gst/vaapi/gstvaapivideocontext.c: 2565 vaapivideocontext: log the name of GstVaapiDisplay 2566 https://bugzilla.gnome.org/show_bug.cgi?id=790999 2567 25682017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2569 2570 * gst/vaapi/gstvaapivideocontext.c: 2571 vaapivideocontext: possible memleak when no bus attached 2572 https://bugzilla.gnome.org/show_bug.cgi?id=790999 2573 25742017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2575 2576 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: 2577 libs: window: wayland: remove unused header include 2578 Remove wayland-client.h include since there is no exposed symbols from 2579 it. 2580 25812017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2582 2583 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2584 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 2585 libs: encoder: h264,h265: guard rate control's macroblock 2586 macroblock parameter appear on VA-API 1.0.0. It should be guarded. 2587 25882017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com> 2589 2590 * common: 2591 Automatic update of common submodule 2592 From 3f4aa96 to e8c7a71 2593 25942016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2595 2596 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2597 libs: encoder: h264: Add Hierarchical-B encode 2598 Frames are encoded as different layers. Frame in a particular 2599 layer will use pictures in lower or same layer as references. 2600 Which means decoder can drop the frames in upper layer but still 2601 decode lower layer frames. 2602 B-frames, except the one in top most layer, are reference frames. 2603 All the base layer frames are I or P. 2604 eg: with 3 temporal layers 2605 T3: B1 B3 B5 B7 2606 T2: B2 B6 2607 T1: I0 P4 P8 2608 T1, T2, T3: Temporal Layers 2609 P1...Pn: P-Frames: 2610 B1...Bn: B-frames: 2611 T1: I0->P4 , P4->P8 etc.. 2612 T2: I0--> B2 <-- P4 2613 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4 2614 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2615 https://bugzilla.gnome.org/show_bug.cgi?id=788918 2616 26172016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2618 2619 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2620 libs: encoder: h264: Add Hierarchical-P encode 2621 Frames are encoded as different layers. A frame in a particular 2622 layer will use pictures in lower or same layer as references. 2623 Which means decoder can drop the frames in upper layer but still 2624 decode lower layer frames. 2625 eg: with 3 temporal layers 2626 T3: P1 P3 P5 P7 2627 T2: P2 P6 2628 T1: P0 P4 P8 2629 T1, T2, T3: Temporal Layers 2630 P1...pn: P-Frames: 2631 P0->P1 , P0->P2, P2->P3, P0->P4......repeat 2632 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2633 https://bugzilla.gnome.org/show_bug.cgi?id=788918 2634 26352016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2636 2637 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2638 libs: encoder: h264: Fix frame_num generation 2639 The frame_num generation was not correctly implemented. 2640 According to h264 spec, frame_num should get incremented 2641 for each frame if previous frame is a referece frame. 2642 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3 2643 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2644 https://bugzilla.gnome.org/show_bug.cgi?id=788918 2645 26462016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2647 2648 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2649 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 2650 libs: encoder: h264: Add new property "prediction-type" 2651 Adds new property "prediction-type" to select different reference 2652 picture selection modes like hierarchical-p, hierarchical-b etc. 2653 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2654 https://bugzilla.gnome.org/show_bug.cgi?id=788918 2655 26562016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com> 2657 2658 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2659 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 2660 libs: encoder: h264: Add machinery for implementing hierarchical-prediction 2661 Adds some basic building blocks to ease the implementation 2662 of hierarchical prediction modes. 2663 -- add an utility method to find temporal level of each frame 2664 -- define max_ref_frame count based on temporal level count 2665 -- add temporal_level_div[] for finding temporal level each frame 2666 to be encoded. 2667 -- find ip_period based on temporal level count 2668 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2669 https://bugzilla.gnome.org/show_bug.cgi?id=788918 2670 26712016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com> 2672 2673 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 2674 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 2675 libs: encoder: h264: Add property "temporal-levels" 2676 Adds new property "temporal-levels" to select the number of 2677 temporal levels to be included in the encoded stream. 2678 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2679 https://bugzilla.gnome.org/show_bug.cgi?id=788918 2680 26812016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com> 2682 2683 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 2684 libs: encoder: objects: Add a reference flag 2685 We can have p-frame as non-ref and also b-frame as ref 2686 which are not supported yet. Reference flag 2687 is the first machinery needed for more advanced 2688 reference picture selection modes. 2689 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 2690 https://bugzilla.gnome.org/show_bug.cgi?id=788918 2691 26922017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com> 2693 2694 * gst-libs/gst/vaapi/gstvaapisurface_egl.c: 2695 libs: surface: egl: add comment 2696 Add a warning comment when using old intel-vaapi-drivers (>1.8.4), 2697 where the creation of surfaces from GEM fd may fail. 2698 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2699 27002017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2701 2702 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 2703 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h: 2704 * gst-libs/gst/vaapi/gstvaapitexture_egl.c: 2705 libs: display: egl: add gst_vaapi_display_egl_set_current_display() 2706 Adds a new function that changes the internal EGL display to the 2707 current one (eglGetCurrentDisplay()) and sets the current context 2708 too (eglGetCurrentContext()). 2709 This new function is called by gst_vaapi_texture_egl_create() updating 2710 the GstVaapiDisplayEGL with the current EGL display. 2711 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2712 27132017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2714 2715 * gst-libs/gst/vaapi/gstvaapitexture_egl.c: 2716 libs: texture: egl: update EGL display and context 2717 It is required to use the context of the calling thread when wrapping 2718 a foreign texture. According the documentation of 2719 GstVideoGLTextureUploadMeta: 2720 "The caller of gst_video_gl_texture_upload_meta_upload() must 2721 have OpenGL set up and call this from a thread where it is valid 2722 to upload something to an OpenGL texture." 2723 This patch updates the EGL display and context in GstVaapiDisplay 2724 instance to the one used by te renderer that uploads the texture. 2725 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com> 2726 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2727 27282017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2729 2730 * gst/vaapi/gstvaapipluginbase.c: 2731 plugins: centralize assignation of GL objects 2732 Add plugin_set_gst_gl() where the GstGL objects are assigned. 2733 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2734 27352017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2736 2737 * gst/vaapi/gstvaapipluginbase.c: 2738 plugins: set GL objects if ensured 2739 Only set the GL display and GL other context if they are ensured. 2740 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2741 27422017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2743 2744 * gst/vaapi/gstvaapipluginbase.c: 2745 plugins: set GL objects if context is handled 2746 Only set the GL display and GL other context if they are extracted 2747 correctly from the gstreamer's context. 2748 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2749 27502017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2751 2752 * gst/vaapi/gstvaapipluginbase.c: 2753 plugins: fix memory leak when GL context is created 2754 When the GL display and context are created inside an VAAPI element 2755 the created GL context is leaked. 2756 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2757 27582017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2759 2760 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 2761 libs: display: egl: free leaked memory 2762 The EGL VAAPI display forgot to release the egl display, context and 2763 proxied VAAPI display. 2764 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2765 27662017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2767 2768 * gst-libs/gst/vaapi/gstvaapitexture_egl.c: 2769 libs: texture: egl: code style 2770 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2771 27722017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2773 2774 * gst-libs/gst/vaapi/gstvaapisurface_egl.c: 2775 libs: surface: egl: error message if no extension 2776 Instead of silently fail to export the image if there is not available 2777 the EGL_MESA_drm_image, log an error message. Also a code refactoring 2778 was done. 2779 https://bugzilla.gnome.org/show_bug.cgi?id=773453 2780 27812017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2782 2783 * gst/vaapi/gstvaapipluginbase.c: 2784 plugins: direct rendering on memory:VASurface 2785 As buffers negotiated with memory:VASurface caps feature can also be 2786 mapped, they can also be configured to use VA derived images, in other 2787 words "direct rendering". 2788 Also, because of the changes in dmabuf allocator as default allocator, 2789 the code for configuring the direct rendering was not clear. 2790 This patch cleans up the code and enables direct rendering when the 2791 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined, 2792 even then the memory:VASurface cap feature is negotiated. 2793 https://bugzilla.gnome.org/show_bug.cgi?id=786054 2794 27952017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2796 2797 * gst/vaapi/gstvaapipluginbase.c: 2798 * gst/vaapi/gstvaapipluginutil.c: 2799 plugins: only dmabuf on srcpad if downstream 2800 Set if source pad can handle dmabuf only if the GstGL context comes 2801 from downstream. 2802 It is possible to know that at two moments: 2803 1\ In the case of GstGLTextureUpload caps feature is negotiated and 2804 downstream pool reports back gst.gl.GstGLContext. 2805 2\ When GstGLContext is found as GstContext from dowstream. 2806 https://bugzilla.gnome.org/show_bug.cgi?id=788503 2807 28082017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2809 2810 * gst/vaapi/gstvaapivideocontext.c: 2811 vaapivideocontext: add inline documentation 2812 Document function gst_vaapi_find_gl_local_context(). 2813 https://bugzilla.gnome.org/show_bug.cgi?id=788503 2814 28152017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2816 2817 * gst/vaapi/gstvaapipluginutil.c: 2818 * gst/vaapi/gstvaapivideocontext.c: 2819 * gst/vaapi/gstvaapivideocontext.h: 2820 vaapivideocontext: return the direction of gl context 2821 In function gst_vaapi_find_gl_context() add a direction parameter to 2822 return back the direction where the GstGL context was found. 2823 This is going to be useful when checking if downstream can import 2824 dmabuf-based buffers. 2825 https://bugzilla.gnome.org/show_bug.cgi?id=788503 2826 28272017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2828 2829 * gst/vaapi/gstvaapipluginbase.c: 2830 * gst/vaapi/gstvaapipluginbase.h: 2831 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf() 2832 This patch refactors the code by adding the function 2833 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed 2834 GstGLContext can handle dmabuf-based buffers. 2835 The function is exposed publicly since it is intended to be used later 2836 at GstVaapiDisplay instantiation. 2837 https://bugzilla.gnome.org/show_bug.cgi?id=788503 2838 28392017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com> 2840 2841 * gst/vaapi/gstvaapiencode.c: 2842 vaapiencode: allow to set property on runtime 2843 Tis patch, allows some properties that we want to be set on 2844 runtime. (eg. bitrate) 2845 Note that all properties are under control by num_codedbuf_queued. 2846 https://bugzilla.gnome.org/show_bug.cgi?id=786321 2847 28482017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com> 2849 2850 * gst-libs/gst/vaapi/gstvaapiencoder.c: 2851 libs: encoder: allow to set bitrate on runtime 2852 In case of streaming, controlling bitrate dynamically for encoder might be 2853 important to manage quality of the streaming. 2854 This patch is to support such a scenario. 2855 https://bugzilla.gnome.org/show_bug.cgi?id=786321 2856 28572017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com> 2858 2859 * gst/vaapi/gstvaapi.c: 2860 * gst/vaapi/gstvaapi.h: 2861 * gst/vaapi/gstvaapidecodebin.c: 2862 vaapidecodebin: Register element if no VPP support is available too 2863 VPP support is only needed for advanced deinterlacing, which is not 2864 enabled by default either. Error out if it is selected but VPP is not 2865 supported, and otherwise just work without VPP support. 2866 https://bugzilla.gnome.org/show_bug.cgi?id=788758 2867 28682017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com> 2869 2870 * gst/vaapi/gstvaapipluginutil.c: 2871 Avoid infinite loop when vaapi_create_display fails 2872 Which might be the case when using, for example, xvfb. 2873 28742017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2875 2876 * gst-libs/gst/vaapi/gstvaapiutils.c: 2877 libs: utils: log warn if display fail 2878 gstreamer-vaapi initializes the display by trial-and-error, thus 2879 logging an error message if the display initialisation fails the user 2880 may be weary of the error message in the screen, if using VA-API 1.0 2881 This commit set the VA error log handler to GStreamer warning level 2882 while calling vaInitialize() and set it to error after that. 2883 https://bugzilla.gnome.org/show_bug.cgi?id=783169 2884 28852017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2886 2887 * gst/vaapi/gstvaapipluginutil.c: 2888 plugins: try to create test display in order 2889 When creating the test display for querying capabilites, it try in 2890 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried 2891 since they are either composited with X11 or Wayland. 2892 The reason for this is to reduce the posibility of failure that could 2893 blacklist the plugin. 2894 https://bugzilla.gnome.org/show_bug.cgi?id=782212 2895 28962017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2897 2898 * gst-libs/gst/vaapi/gstvaapidisplay.c: 2899 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 2900 libs: display: delay getting screen resolution 2901 Instead of extracting the screen resolution at GstVaapiDisplay 2902 creation, this patch delay it until the screen size is requested for 2903 first time. 2904 https://bugzilla.gnome.org/show_bug.cgi?id=782212 2905 29062017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2907 2908 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 2909 libs: display: egl: avoid two vaDisplay instantiates 2910 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11 2911 or Wayland. Nonetheless it created another vaDisplay for it, instead 2912 of using the wrapped one. 2913 This patch enables the reuse of the wrapped vaDisplay avoiding 2914 instantiating two. 2915 https://bugzilla.gnome.org/show_bug.cgi?id=782212 2916 29172017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2918 2919 * gst-libs/gst/vaapi/gstvaapidisplay.c: 2920 * gst-libs/gst/vaapi/gstvaapidisplay.h: 2921 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 2922 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 2923 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 2924 libs: display: remove display_type from display info 2925 Since it's no required to pass the display type in the display info, 2926 the structure member is removed. 2927 https://bugzilla.gnome.org/show_bug.cgi?id=782212 2928 29292017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2930 2931 * gst-libs/gst/vaapi/gstvaapidisplay.c: 2932 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 2933 libs: display: remove display_type member 2934 It is not used any more since GstVaapiDisplay was ported as a 2935 GstObject-based. This information is part of the class information. 2936 https://bugzilla.gnome.org/show_bug.cgi?id=782212 2937 29382017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2939 2940 * gst-libs/gst/vaapi/gstvaapidisplay.c: 2941 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 2942 libs: display: remove parent member 2943 Parent was a crumb left from display cache. 2944 https://bugzilla.gnome.org/show_bug.cgi?id=782212 2945 29462017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com> 2947 2948 * gst/vaapi/gstvaapi.c: 2949 vaapi: Also register vaapipostproc without VPP support 2950 It can still do simple deinterlacing then. 2951 29522017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com> 2953 2954 * gst/vaapi/gstvaapipostproc.c: 2955 vaapipostproc: Allow running without VPP support 2956 We returned FALSE from ::start() if VPP support is not available, but it 2957 is only really needed for complex filters and during transform we check 2958 for that. For simple deinterlacing it is not needed. 2959 29602017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2961 2962 * gst/vaapi/gstvaapipostproc.c: 2963 vaapipostproc: use scoped variable for return value 2964 Instead of reusing a parameter variable for the return value of 2965 gst_vaapipostproc_transform_caps(), this patch uses the function 2966 scoped pointer. Thus, the code is cleaner. 2967 https://bugzilla.gnome.org/show_bug.cgi?id=785706 2968 29692017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2970 2971 * gst/vaapi/gstvaapipostproc.c: 2972 vaapipostproc: removed unused parameter 2973 Removed caps parameter from gst_vaapipostproc_transform_caps_impl() 2974 helper function since the it is not used. 2975 https://bugzilla.gnome.org/show_bug.cgi?id=785706 2976 29772017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2978 2979 * gst/vaapi/gstvaapipostproc.c: 2980 vaapipostproc: use scoped variable for return value 2981 Instead of reusing a parameter variable for the return value of 2982 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped 2983 pointer. Thus, the code is cleaner. 2984 https://bugzilla.gnome.org/show_bug.cgi?id=785706 2985 29862017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2987 2988 * gst/vaapi/gstvaapipluginutil.h: 2989 plugins: memory:DMABuf only handles planar formats 2990 When glimagesink negotiates the caps feature memory:DMABuf the 2991 exported dmabufs buffers with NV12 format are not well rendered, thus 2992 setting only planar. 2993 https://bugzilla.gnome.org/show_bug.cgi?id=788229 2994 29952017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2996 2997 * gst/vaapi/gstvaapiencode.c: 2998 vaapiencode: flush pending frames before set format 2999 Flush pending frames, if any, in the internal encorder, before setting 3000 the new negotiated format. 3001 https://bugzilla.gnome.org/show_bug.cgi?id=786173 3002 30032017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3004 3005 * gst/vaapi/gstvaapidecode.c: 3006 vaapidecode: drain pending frames before set format 3007 Drain pending frames, if any, in the internal decoder before setting 3008 the new negotiated format. 3009 https://bugzilla.gnome.org/show_bug.cgi?id=786173 3010 30112017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3012 3013 * tests/test-display.c: 3014 tests: display: use GObject getter 3015 Instead of using the gst_vaapi_display_get_property(), this patch 3016 replaces it with g_object_get_property() to dump the available VA 3017 display properties. 3018 https://bugzilla.gnome.org/show_bug.cgi?id=788058 3019 30202017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3021 3022 * gst/vaapi/gstvaapisink.c: 3023 vaapisink: use GObject setter and getter 3024 Instead of using gst_vaapi_display_set_property() or 3025 gst_vaapi_display_get_property(), this patch set replace it usage 3026 with g_object_set() or g_object_get(). 3027 Also the internal helper cb_set_value() is removed since it is not 3028 used anymore. 3029 https://bugzilla.gnome.org/show_bug.cgi?id=788058 3030 30312017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3032 3033 * gst-libs/gst/vaapi/gstvaapidisplay.c: 3034 libs: display: initialize value if they are not yet 3035 This is a difference between the GObject API and the GstVaapi one: the 3036 GValue passed to get a property value, in GObject has to be 3037 initialized with g_value_init(), but in GstVaapi is has not. 3038 In order to overcome this mismatch, this patch call g_value_init() 3039 internally only in the passed one is not already initialized. 3040 https://bugzilla.gnome.org/show_bug.cgi?id=788058 3041 30422017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3043 3044 * gst-libs/gst/vaapi/gstvaapidisplay.c: 3045 libs: display: optimize properties setters and getters 3046 Shuffled some code to avoid to find the properties descriptor in the 3047 array twice, adding the internal functions _set_property() and 3048 _get_property(). 3049 https://bugzilla.gnome.org/show_bug.cgi?id=788058 3050 30512017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3052 3053 * gst-libs/gst/vaapi/gstvaapidisplay.c: 3054 libs: display: install properties in class 3055 Install the properties in the class as a normal GObject. Implement 3056 set_property() and get_property() vmethods. 3057 https://bugzilla.gnome.org/show_bug.cgi?id=788058 3058 30592017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3060 3061 * gst-libs/gst/vaapi/gstvaapidisplay.c: 3062 libs: display: remove gst_vaapi_display_properties_init() 3063 Remove gst_vaapi_display_properties_init() since it can be unrolled in 3064 gst_vaapi_display_class_init() 3065 https://bugzilla.gnome.org/show_bug.cgi?id=788058 3066 30672017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3068 3069 * gst-libs/gst/vaapi/gstvaapidisplay.c: 3070 libs: display: remove libgstvaapi_init_once() 3071 It is not required since it can be unrolled in 3072 gst_vaapi_display_class_init() 3073 https://bugzilla.gnome.org/show_bug.cgi?id=788058 3074 30752017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3076 3077 * tests/test-display.c: 3078 tests: test-display: remove display cache tests 3079 Since commit ec3e10f6, display cache was removed. This patch removes 3080 this leftovers in the display test. 3081 30822017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com> 3083 3084 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 3085 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 3086 libs: decoder: h264/h265: decode codec data only if opened 3087 Fixes regression introduced by commit 2eb2b26a. 3088 There is a use case when the decoder set the src caps and immediatly 3089 tries to process the media codec_data, this happens before decoder is 3090 even opened, thus priv->parser is not instantiated yet. 3091 https://bugzilla.gnome.org/show_bug.cgi?id=787818 3092 30932017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3094 3095 * gst-libs/gst/vaapi/gstvaapiencoder.c: 3096 * gst-libs/gst/vaapi/gstvaapiencoder.h: 3097 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3098 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3099 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 3100 libs: encoder: change mbbrc from uint to enum 3101 Instead of handling the macroblock bitrate control as a integer, this 3102 patch changes it as a enum, which is more self documented in the 3103 GStreamer elements. 3104 https://bugzilla.gnome.org/show_bug.cgi?id=787855 3105 31062017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com> 3107 3108 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3109 Fix a typo in the prop string for compliance-mode 3110 31112017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3112 3113 * gst-libs/gst/vaapi/gstvaapiencoder.c: 3114 libs: encoder: don't unref properties 3115 This patch fixes a regression introduced in commit 148f867c, since the 3116 props variable is set to object's member variable 3117 encoder->properties. And it is set in the instance initialization, 3118 thus it will not be leaked. 3119 https://bugzilla.gnome.org/show_bug.cgi?id=787733 3120 31212017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com> 3122 3123 * gst-libs/gst/vaapi/gstvaapiencoder.c: 3124 * gst/vaapi/gstvaapiencode.c: 3125 vaapiencode/libs: encoder: fix leaks of properties 3126 https://bugzilla.gnome.org/show_bug.cgi?id=786321 3127 31282017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3129 3130 * gst-libs/gst/vaapi/gstvaapidecoder.c: 3131 libs: decoder: at update_caps() decode codec_data 3132 When updating the caps in decoder, if the caps has codec_data (avC 3133 format), it has to be parsed to update the state of the decoder. 3134 https://bugzilla.gnome.org/show_bug.cgi?id=786173 3135 31362017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com> 3137 3138 * gst-libs/gst/vaapi/gstvaapicontext.c: 3139 libs: context: fix wrong counter of the array of attributes 3140 The counter value passed to vaCreateConfig is always +1. 3141 This is a regression caused by commit e42ec3ad. 3142 The present patch fixes wrong counting of the array of attributes. 3143 https://bugzilla.gnome.org/show_bug.cgi?id=787613 3144 31452017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com> 3146 3147 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3148 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 3149 libs: encoder: h265: support I/P/B QP setting seperatedly 3150 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B 3151 frames 3152 and set slice_qp_delta for each frame according to the value provided. 3153 https://bugzilla.gnome.org/show_bug.cgi?id=785923 3154 31552017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com> 3156 3157 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3158 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 3159 libs: encoder: h264: support I/P/B QP setting seperatedly 3160 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B 3161 frames 3162 and set slice_qp_delta for each frame according to the value provided. 3163 In addition, remove the limitation of (<= 4) when setting 3164 slice_qp_delta. 3165 https://bugzilla.gnome.org/show_bug.cgi?id=785923 3166 31672017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com> 3168 3169 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3170 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3171 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp 3172 Creates new variable for QP for I frame and keep it at configuration and 3173 use this for pic_init_qp and slice_qp_delta setting. 3174 Since changing min qp doesn't make sense, keep min qp as is. 3175 https://bugzilla.gnome.org/show_bug.cgi?id=785923 3176 31772017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com> 3178 3179 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3180 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 3181 libs: encoder: h265: Add mbbrc property 3182 This property supports Macroblock level Bitrate Control as the 3183 following (same as h264 encoder): 3184 0: auto 3185 1: on 3186 2: off 3187 https://bugzilla.gnome.org/show_bug.cgi?id=785917 3188 31892017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com> 3190 3191 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3192 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 3193 libs: encoder: h264: Add mbbrc property 3194 This property supports Macroblock level Bitrate Control as the 3195 following: 3196 0: auto 3197 1: on 3198 2: off 3199 https://bugzilla.gnome.org/show_bug.cgi?id=785917 3200 32012017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com> 3202 3203 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3204 libs: encoder: h265: add multi reference support 3205 This is doing the same as h264 encoder as the following: 3206 Using num_ref_frames provided and the result of the Query 3207 VAConfigAttribEncMaxRefFrames, it determines the size of reference list 3208 and perform encoding with multi reference frames as the following: 3209 1\ The num_ref_frames is being considered as the number of 3210 reference picture list0 3211 2\ Encoder adds 1 reference frame more to the reference picture list1 3212 internally if b-frame encoding. 3213 3\ If num_ref_frames is bigger than the number of refrence frames 3214 supported in the driver, it will be lowered. 3215 Also this patch includes: 3216 - Set num_negative_pics and num_positive_pics according to the number of 3217 refs. 3218 - Set delta_poc according to the number of refs. 3219 - Increase max_dec_pic_buffering according to the number of refs 3220 - Change max_num_reorder_pics according to num of bframes 3221 https://bugzilla.gnome.org/show_bug.cgi?id=783804 3222 32232017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com> 3224 3225 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3226 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 3227 libs: encoder: h265: add refs property 3228 Users can provide the number of reference frame by this property, 3229 which is exaclty same as h264. 3230 The value of the property will be considered as the number of 3231 reference picture list0 and will add 1 reference frame more to the 3232 reference picture list1 internally if b-frame encoding. 3233 If the value provided is bigger than the number of refrence frames 3234 supported in the driver, it will be lowered. 3235 The maximum value is aligned to the value of the driver supported now. 3236 https://bugzilla.gnome.org/show_bug.cgi?id=783804 3237 32382017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com> 3239 3240 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3241 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3242 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list 3243 Follows the specification as below: 3244 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016) 3245 num_ref_idx_active_override_flag equal to 1 specifies that the syntax 3246 element num_ref_idx_l0_active_minus1 is present for P and B slices and 3247 that the syntax element num_ref_idx_l1_active_minus1 is present for B 3248 slices. 3249 num_ref_idx_active_override_flag equal to 0 specifies that the syntax 3250 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1 3251 are not present. 3252 https://bugzilla.gnome.org/show_bug.cgi?id=783804 3253 32542017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com> 3255 3256 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3257 libs: encoder: h265: keep idr_period equal to keyframe period 3258 Remove FIXME code, which makes previous assignation spurious. 3259 This also means to make idr_period equal to keyframe period, 3260 which is same as h264 encoder. 3261 https://bugzilla.gnome.org/show_bug.cgi?id=783804 3262 32632017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 3264 3265 * gst/vaapi/gstvaapipluginbase.c: 3266 Request minimum buffer even if need_pool is FALSE 3267 When tee is used, it will not request a pool, but still it wants to 3268 know how many buffers are required. 3269 https://bugzilla.gnome.org/show_bug.cgi?id=730758 3270 32712017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com> 3272 3273 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 3274 libs: encoder: h264_fei: VA-API 1.0 compat 3275 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0 3276 compatibility. 3277 https://bugzilla.gnome.org/show_bug.cgi?id=787322 3278 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> 3279 32802017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3281 3282 * gst/vaapi/gstvaapisink.c: 3283 vaapisink: Fix rendering in drm display 3284 Make sure vaapisink create a va surface backed buffer pool and all 3285 required attributes get assigned correctly for drm display type. 3286 This is needed to make the below pipeline working: 3287 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy 3288 width=320 height=240 framerate=30/1 ! vaapisink display=drm 3289 https://bugzilla.gnome.org/show_bug.cgi?id=786954 3290 32912017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3292 3293 * tests/Makefile.am: 3294 * tests/test-fei-enc-in.c: 3295 * tests/test-fei-enc-out.c: 3296 FEI: Add test applications to showcase fei use case 3297 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion 3298 eg: 3299 ./test-fei-enc-out -i sample_320x240.nv12 -w 320 -h 240 -o out.264 -v mv.out -d out.dist -m out.mbcode -e 1 3300 test-fei-enc-in: A simple fei encoding application for testing input fei buffers 3301 eg: 3302 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m 3303 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers 3304 from saved files is still not working 3305 People contributed: 3306 Wang, Yi <yi.a.wang@intel.com> 3307 Leilei <leilei.shang@intel.com> 3308 Zhong, Xiaoxia <xiaoxia.zhong@intel.com> 3309 xiaominc <xiaomin.chen@intel.com> 3310 Li, Jing B <jing.b.li@intel.com> 3311 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3312 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3313 33142017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3315 3316 * gst/vaapi/Makefile.am: 3317 * gst/vaapi/gstvaapi.c: 3318 * gst/vaapi/gstvaapiencode_h264_fei.c: 3319 * gst/vaapi/gstvaapiencode_h264_fei.h: 3320 FEI: plugin: Add vaapih264feienc element 3321 A new FEI based encoder element for h264 is added: vaapih264feienc 3322 FEI is a an extension to VA-API which is providing low level 3323 advanced control over different stages of encoding. 3324 Extending vaapih264enc with fei support is possible, but it will 3325 make the code too much complicated and will be difficult 3326 to debug. So adding the new encoder element, but keeping 3327 the rank as 0 , vaapih264enc will stay as the primary 3328 encoder for normal use cases. 3329 The vaaih264feienc is mainly useful for customers who want to play 3330 with MotionVectors and Macroblock Predictions. Also user can 3331 do one stage of encoding(eg: only the Motion Vector Calculation) 3332 in software and offload trasformation/entroy-coding etc to 3333 Hardware (which is what PAK module is doing) using FEI element. 3334 vaapih264feienc can work in different modes using fei-mode properoty 3335 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264 3336 Important Note: ENC only mode won't produce any encoded data which is expected. 3337 But ENC alwys requires the output of PAK in order to do the inter-prediction 3338 over reconstructed frames. 3339 Similary PAK mode alway requires MV and MBCode as input, so unless there is an 3340 upstream element providing those buffers, PAK only won't work as expected. 3341 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify 3342 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure 3343 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK 3344 separately in vaapih264feienc. 3345 People contributed: 3346 Wang, Yi <yi.a.wang@intel.com> 3347 Leilei <leilei.shang@intel.com> 3348 Zhong, Xiaoxia <xiaoxia.zhong@intel.com> 3349 xiaominc <xiaomin.chen@intel.com> 3350 Li, Jing B <jing.b.li@intel.com> 3351 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3352 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3353 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3354 33552017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com> 3356 3357 * gst/vaapi/gstvaapiencode.c: 3358 * gst/vaapi/gstvaapiencode.h: 3359 FEI: plugin: Add virtual methods to base encode 3360 Two new virtual methods are added to gstvaapiencode. 3361 load_control_data(): load the FEI input buffers set by the upstream elements 3362 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements 3363 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3364 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3365 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3366 33672017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com> 3368 3369 * gst/vaapi/Makefile.am: 3370 * gst/vaapi/gstvaapifeivideometa.c: 3371 * gst/vaapi/gstvaapifeivideometa.h: 3372 FEI: plugin: Add fei specific video meta 3373 GstVaapiFeiVideoMeta holds the below fei codec objects: 3374 GstVaapiEncFeiMbCode 3375 GstVaapiEncFeiMv 3376 GstVaapiEncFeiMvPredictor 3377 GstVaapiEncFeiMbControl 3378 GstVaapiEncFeiQp 3379 GstVaapiEncFeiDistortion 3380 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3381 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3382 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3383 33842017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3385 3386 * gst-libs/gst/vaapi/Makefile.am: 3387 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c: 3388 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h: 3389 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c: 3390 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h: 3391 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c: 3392 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h: 3393 FEI: libs: Add FEI encoder 3394 Adding FEI encoder to core lib. 3395 The code is splitted into three session: 3396 1: gstvaapiencoder_h264_fei.{h,c} 3397 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI. 3398 All the modes ENC, PAK and ENC_PAK are running based 3399 the code in these files. 3400 2: gstvaapifeienc_h264.{h,c} 3401 Abstract implementation intended for ENC (only VME) operation. 3402 3: gstvaapifeipak_h264.{h,c} 3403 Abstrct implementation intended for PAK (only the PAK module) 3404 Right now ENC_PAK, ENC and PAK are running based on code 3405 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations 3406 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are 3407 needed if user request for ENC+PAK mode operation. 3408 ENC+PAK: Here we need to invoke two sequence of 3409 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame, 3410 first for the ENC only and the second for PAK only. 3411 Each mode associated with separate context ,but same pool of surfaces are 3412 shared between the modes. 3413 This is more useful once we have custom BRC algorithms. 3414 Other Contributors: 3415 Wang, Yi <yi.a.wang@intel.com> 3416 Leilei <leilei.shang@intel.com> 3417 Zhong, Xiaoxia <xiaoxia.zhong@intel.com> 3418 xiaominc <xiaomin.chen@intel.com> 3419 Li, Jing B <jing.b.li@intel.com> 3420 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3421 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3422 34232017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3424 3425 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 3426 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 3427 FEI: libs: Add fei codec objects to GstVaapiEncPicture 3428 All the codec objects(vaapi buffers) supposed to be 3429 submited in vaRenderPicutre are associated with a GstVaapiEncPicture 3430 for each frame, follow the same design for FEI too. 3431 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3432 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3433 34342017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3435 3436 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c: 3437 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h: 3438 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h: 3439 FEI: libs: Add fei codec objects in codedbufferproxy 3440 MbCode, MV and Distortion buffers (fei codec objects) 3441 can be treated as output of different fei modes based user request. 3442 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist 3443 can be dumped as output in ENC_PAK mode for analysis purpose. 3444 So treating them as a part of CodedBufferProxy too. 3445 Here we avoided Qp, MbControl and MvPredictor codec objects since 3446 there is no practical use case of treating them as "output buffers". 3447 Other contributors: 3448 Zhong, Xiaoxia <xiaoxia.zhong@intel.com> 3449 xiaominc <xiaomin.chen@intel.com> 3450 Leilei <leilei.shang@intel.com> 3451 Li, Jing B <jing.b.li@intel.com> 3452 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3453 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3454 34552017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3456 3457 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 3458 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 3459 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 3460 FEI: libs: Add fei codec objects to surface proxy 3461 Add fei codec objects to surface proxy since handling the 3462 fei buffers(codec objects here) external to gstvaapisurfaceproxy 3463 will make the code complicated. Especially considering the behavior 3464 of encoder where the input frame order from upstream and output 3465 frame order to the downstream are not sequential. 3466 Other contributors: 3467 Zhong, Xiaoxia <xiaoxia.zhong@intel.com> 3468 xiaominc <xiaomin.chen@intel.com> 3469 Leilei <leilei.shang@intel.com> 3470 Li, Jing B <jing.b.li@intel.com> 3471 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3472 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3473 34742017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3475 3476 * gst-libs/gst/vaapi/Makefile.am: 3477 * gst-libs/gst/vaapi/gstvaapifei_objects.c: 3478 * gst-libs/gst/vaapi/gstvaapifei_objects.h: 3479 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h: 3480 FEI: Add codec objects for fei usecase 3481 There are 6 new va buffer types, each defined as a specific codec object. 3482 Borrowed the code from gstvaapicodecobject , but made a clear separation 3483 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects, 3484 feicodecobjects can be shared between elements and also can be accessed 3485 from different thread. 3486 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl 3487 object is not shared between elements.So we utilize the already 3488 existing gst_vaapi_enc_misc_param_new(), but still keeping the code 3489 in gstvaapfei_objects_priv.h in order to have a better 3490 code readability. 3491 Fixme: 3492 -- Probably we need _locked_map() and _unlocked_map() 3493 -- Context can be associated with PreEnc(not just Enoder) 3494 once we have the proper support inplace, but for now we don't have 3495 PreEnc support, so should be safe enough to use GstVaapiEncoder. 3496 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3497 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3498 34992017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3500 3501 * gst-libs/gst/vaapi/Makefile.am: 3502 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c: 3503 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h: 3504 FEI: libs: add H264 fei specific utility functions 3505 Added enum/flag type definitions for a number of FEI 3506 input and output parameters. 3507 Original author of the patch: Wang, Yi <yi.a.wang@intel.com> 3508 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3509 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3510 Signed-off-by: Wang, Yi <yi.a.wang@intel.com> 3511 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3512 35132017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3514 3515 * gst-libs/gst/vaapi/gstvaapiencoder.c: 3516 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 3517 FEI: libs: Add virtual method for secondary context creation. 3518 Add a new vitrual method ensure_secondary_context to the 3519 base encoder which is only required for the FEI entrypoint, that too 3520 only when user configures the ENC+PAK mode. ENC+PAK mode is not something 3521 supported directly by libva or driver, but this can be enabled 3522 from the middleware. 3523 Original Author of this idea: Leilei Shang <leilei.shang@intel.com> 3524 Signed-off-by: Leilei Shang <leilei.shang@intel.com> 3525 Signed-off-by: xiaominc <xiaomin.chen@intel.com> 3526 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3527 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3528 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3529 35302017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3531 3532 * gst-libs/gst/vaapi/gstvaapiencoder.c: 3533 FEI: libs: make sure the default context creation works as expected. 3534 Current code always guess the entrypoint during init phase in case 3535 if there is no entrypoint already configured in GstVaapiContextInfo. 3536 Make sure FEI Entrypoint is not messing up with this logic. 3537 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3538 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3539 35402017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3541 3542 * gst-libs/gst/vaapi/gstvaapicontext.c: 3543 * gst-libs/gst/vaapi/gstvaapicontext.h: 3544 * gst-libs/gst/vaapi/gstvaapiencoder.c: 3545 FEI: libs: Add FEI functional mode configuration 3546 FEI Entrypoint can work in either one of the 3 different modes: 3547 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK. 3548 Add infrastructure in gstvaapicontext and gstvaapiencoder for this 3549 functioal mode configuration. 3550 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3551 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3552 35532017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3554 3555 * gst-libs/gst/vaapi/gstvaapidisplay.c: 3556 * gst-libs/gst/vaapi/gstvaapiprofile.c: 3557 * gst-libs/gst/vaapi/gstvaapiprofile.h: 3558 FEI: libs: Add FEI Entrypoint mapping 3559 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI 3560 for VAEntrypointFEI. 3561 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3562 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3563 35642017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3565 3566 * configure.ac: 3567 FEI: Add support for FEI conditional build 3568 FEI(Flexible Encoding Infrastructure) is an extension 3569 to VA API. Define USE_H264_FEI_ENCODER based on 3570 fei header file and required structures availability. 3571 https://bugzilla.gnome.org/show_bug.cgi?id=785712 3572 https://bugzilla.gnome.org/show_bug.cgi?id=784667 3573 35742017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com> 3575 3576 * gst/vaapi/gstvaapidecode.c: 3577 vaapidecode: force add h264 SVC profiles in caps 3578 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile 3579 support in caps. 3580 https://bugzilla.gnome.org/show_bug.cgi?id=732266 3581 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3582 35832017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com> 3584 3585 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 3586 libs: decoder: h264: decode SVC base layer only 3587 Drops non-base NALs when the base-only property is set to TRUE. 3588 This modifies the behavior for MVC streams with base-only too: All the 3589 non-base units are dropped before they are decoded instead of dropping 3590 the non-base frames. 3591 The relevant part from the H264 spec is: 3592 > Decoders that conform to one or more of the profiles specified in 3593 Annex A rather than the profiles specified in Annexes G or H shall 3594 ignore (remove from the bitstream and discard) the contents of all NAL 3595 units with nal_unit_type equal to 14, 15, or 20. 3596 To eliminate side effects from the offending units: 3597 - PPS's with a broken seq_parameter_set_id (referring to dropped subset 3598 SPS's) are ignored. 3599 - The NAL parsing is skipped and their flags are set to 3600 GST_VAAPI_DECODER_UNIT_FLAG_SKIP. 3601 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would 3602 use them even if they are flagged to be skipped. Subset SPS's and slice 3603 extension units are not stored there either. 3604 https://bugzilla.gnome.org/show_bug.cgi?id=732266 3605 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3606 36072017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com> 3608 3609 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 3610 libs: decoder: h264: check nalu validity in parser info finalize 3611 https://bugzilla.gnome.org/show_bug.cgi?id=732266 3612 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 3613 36142017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3615 3616 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3617 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3618 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 3619 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 3620 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 3621 libs: encoder: remove unused cast macro 3622 Remove internal macro to cast structure that are already declared 3623 in the header. 3624 36252017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3626 3627 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 3628 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 3629 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h: 3630 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 3631 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h: 3632 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h: 3633 Revert "libs: encoders: remove unused cast macros" 3634 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255. 3635 36362017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3637 3638 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 3639 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 3640 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h: 3641 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 3642 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h: 3643 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h: 3644 libs: encoders: remove unused cast macros 3645 They are only used inside the code, where another macro is defined. 3646 Thus these exported macros have no use. 3647 36482017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3649 3650 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 3651 libs: decoder: h264: improve code-style 3652 https://bugzilla.gnome.org/show_bug.cgi?id=786173 3653 36542017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3655 3656 * gst-libs/gst/vaapi/gstvaapicompat.h: 3657 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3658 libs: encoder: h264: handle deprecated enum 3659 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and 3660 instead VAEncPackedHeaderRawData should be used. 3661 This patch creates a compatibility symbol, 3662 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the 3663 VA-API version. 3664 https://bugzilla.gnome.org/show_bug.cgi?id=784398 3665 36662017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3667 3668 * gst-libs/gst/vaapi/gstvaapiprofile.c: 3669 * gst-libs/gst/vaapi/gstvaapiutils.c: 3670 libs: guard deprecated symbols 3671 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch 3672 guards the H.264 baseline usage. Consider this commit as a 3673 continuation of commit e0e0a474 3674 https://bugzilla.gnome.org/show_bug.cgi?id=784398 3675 36762017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3677 3678 * configure.ac: 3679 * meson.build: 3680 * meson_options.txt: 3681 Revert "build: check for libva-2.0" 3682 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210. 3683 https://bugzilla.gnome.org/show_bug.cgi?id=784398 3684 36852017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3686 3687 * gst-libs/gst/vaapi/gstvaapicompat.h: 3688 * gst-libs/gst/vaapi/gstvaapicontext.c: 3689 * gst-libs/gst/vaapi/gstvaapiencoder.c: 3690 libs: macro to get a renamed value in VA-API 1.0 3691 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has 3692 renamed one member from roi_value_is_qp_delat to 3693 roi_value_is_qp_delta, which is the correct name. 3694 In order to keep back compatibility a macro has added to access this 3695 union member. 3696 https://bugzilla.gnome.org/show_bug.cgi?id=784398 3697 36982017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3699 3700 * gst/vaapi/gstvaapipluginbase.h: 3701 * gst/vaapi/gstvaapipluginutil.c: 3702 plugins: include main gstgl header 3703 Instead including particular gstgl header files in a header file 3704 that doesn't export a gstgl symbol, the main gstgl header file is 3705 included in gstvaapipluginutil.c where the symbols are used. 3706 https://bugzilla.gnome.org/show_bug.cgi?id=786597 3707 37082017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3709 3710 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3711 libs: encoder: h264: fix enum namespace 3712 37132017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com> 3714 3715 * common: 3716 Automatic update of common submodule 3717 From 48a5d85 to 3f4aa96 3718 37192017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3720 3721 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3722 libs: encoder: h264: remove spurious assignation 3723 Coverity scan bug: 3724 An assigned value that is never used may represent unnecessary 3725 computation, an incorrect algorithm, or possibly the need for cleanup 3726 or refactoring. 3727 ip_period is assigned first to be rewritter inmediatly after. The 3728 first assignation is spurious. 3729 37302017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com> 3731 3732 * gst/vaapi/gstvaapidecode.c: 3733 vaapidecode: fix mismatch of the return type 3734 https://bugzilla.gnome.org/show_bug.cgi?id=786307 3735 37362017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3737 3738 * gst-libs/gst/vaapi/Makefile.am: 3739 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 3740 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 3741 * gst-libs/gst/vaapi/gstvaapiutils.h: 3742 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 3743 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 3744 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h: 3745 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: 3746 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 3747 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h: 3748 * gst-libs/gst/vaapi/meson.build: 3749 libs: remove unused header 3750 Since libgstvaapi is not distributed, there is no need to check for 3751 private header inclusion. Thus removing it. 3752 https://bugzilla.gnome.org/show_bug.cgi?id=786119 3753 37542017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3755 3756 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 3757 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 3758 * gst-libs/gst/vaapi/gstvaapiutils_h265.h: 3759 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h: 3760 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: 3761 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: 3762 libs: utils: move gstvaapisurface.h to private headers 3763 Since the utils don't expose API defined in gstvaapisource.h, it is 3764 moved to their private headers where they are used. 3765 https://bugzilla.gnome.org/show_bug.cgi?id=786119 3766 37672017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3768 3769 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 3770 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 3771 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 3772 * gst-libs/gst/vaapi/gstvaapiutils_h265.h: 3773 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c: 3774 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: 3775 libs: utils: remove va.h include in header 3776 And include gstvaapicompat.h in the C files, since the VA-API is not 3777 exposed in the headers. 3778 https://bugzilla.gnome.org/show_bug.cgi?id=786119 3779 37802017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3781 3782 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3783 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3784 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 3785 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 3786 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 3787 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 3788 libs: encoder: remove va.h include 3789 Since it is already managed by gstvaapicompat.h 3790 https://bugzilla.gnome.org/show_bug.cgi?id=786119 3791 37922017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3793 3794 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 3795 * gst-libs/gst/vaapi/gstvaapicompat.h: 3796 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 3797 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 3798 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 3799 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3800 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3801 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 3802 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 3803 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 3804 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 3805 * gst-libs/gst/vaapi/gstvaapifilter.c: 3806 * gst-libs/gst/vaapi/gstvaapiutils.c: 3807 * meson.build: 3808 build: consolidate the VA sub API includes 3809 Include all VA sub APIs headers in a single point (gstvaapicompat.h), 3810 since they are all already included in va.h after VA-API 0.38. 3811 https://bugzilla.gnome.org/show_bug.cgi?id=786119 3812 38132017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3814 3815 * configure.ac: 3816 * meson.build: 3817 build: check for va_vpp.h 3818 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will 3819 allow us to handle the inclusion of the header better. 3820 https://bugzilla.gnome.org/show_bug.cgi?id=786119 3821 38222017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com> 3823 3824 * meson.build: 3825 meson: don't export symbols by default 3826 Only plugin entry points should be exported. 3827 38282017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3829 3830 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 3831 libs: decoder: h265: remove spurious code 3832 Coverity scan: 3833 Logically dead code: The indicated dead code may have performed some 3834 action; that action will never occur. 3835 By using pointer arithmetic is impossible to get NULL. 3836 38372017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3838 3839 * gst-libs/gst/vaapi/gstvaapicontext.c: 3840 libs: context: use attribs index instead pointers 3841 Coverity scan bug: 3842 Out-of-bounds write. This could cause an immediate crash or incorrect 3843 computations. 3844 Coverity basically found that it is possible to assign more than 4 3845 attribs in the array. 3846 In my opinion this was produced because code pattern used pointer 3847 arithmetic, which is not readable nor maintainable. 3848 This patch refactors config_create() to use an array index rather than 3849 pointer arithmetic. Also a run-time check for index size was added. 3850 38512017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3852 3853 * gst/vaapi/gstvaapiencode_h264.c: 3854 vaapiencode: h264: remove spurious code 3855 Coverity scan bug: 3856 An unsigned value can never be negative, so this test will always 3857 evaluate the same way. 3858 As len is guint32, there is no need to check it if it is equal or 3859 bigger than zero. 3860 38612017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3862 3863 * gst/vaapi/gstvaapidecode.c: 3864 vaapidecode: initialize variable 3865 Coverity scan bug: 3866 The variable will contain an arbitrary value left from earlier 3867 computations. 3868 Variable base_only is fetched from base-only property, and it may be 3869 not assigned. It needs to be initialized. 3870 38712017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3872 3873 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 3874 libs: windows: wayland: fail if cannot remove last frame 3875 Converity scan bug: 3876 If the function returns an error value, the error value may be 3877 mistaken for a normal value. 3878 If g_atomic_pointer_compare_and_exchange() fails because the frame is 3879 not the last one, the function fails. Thus, logging an info message. 3880 38812017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3882 3883 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 3884 libs: utils: glx: check return value 3885 Coverity scan bug: 3886 If the function returns an error value, the error value may be 3887 mistaken for a normal value. 3888 Function sscanf returns the number of assignations done. Validate this 3889 return value with the number of expected variables to match. 3890 38912017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3892 3893 * gst-libs/gst/vaapi/gstvaapiobject.c: 3894 libs: vaapi: object: remove unrequired NULL check 3895 Coverity scan bug: 3896 Dereference after null check: Either the check against null is 3897 unnecessary, or there may be a null pointer dereference. 3898 Variable klass has been validated as non-NULL several time before in 3899 gst_vaapi_object_new() function, so there is no need to check it 3900 again. 3901 39022017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3903 3904 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3905 libs: encoder: h265: remove spurious assignation 3906 Coverity scan bug: 3907 An assigned value that is never used may represent unnecessary 3908 computation, an incorrect algorithm, or possibly the need for cleanup 3909 or refactoring. 3910 ip_period is assigned first to be rewritter inmediatly after. The 3911 first assignation is spurious. 3912 39132017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3914 3915 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3916 libs: encoder: h264: fix copy & paste error 3917 Coverity scan bug: 3918 The copied code will not have its intended effect. 3919 This is a bug from commit cdaf15b2, where the intention is to 3920 initialize RefPicList1 while setting RefPicList0. 3921 39222017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3923 3924 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 3925 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 3926 libs: encoder: h265: fix possible integer overflow 3927 Coverity scan bug: 3928 Unintentional integer overflow. The expression's value may not be what 3929 the programmer intended, because the expression is evaluated using a 3930 narrow (i.e. few bits) integer type. 3931 Cast operator to guint64 before computation to avoid narrowing. 3932 merge with 3c5a6add 3933 39342017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3935 3936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 3937 libs: decoder: mpeg4: fail if return value is not OK 3938 Coverity scan bug: 3939 An assigned value that is never used may represent unnecessary 3940 computation, an incorrect algorithm, or possibly the need for cleanup 3941 or refactoring. 3942 In the return value of decode_slice() or 3943 gst_mpeg4_parse_video_packet_header() are not success, thus fail 3944 decode_packet() function. 3945 39462017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3947 3948 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 3949 libs: decoder: h265: check for null 3950 Coverity scan bug: 3951 Dereference after null check: Either the check against null is 3952 unnecessary, or there may be a null pointer dereference. 3953 While looking for hte lowest poc, according to rest of the code, the 3954 picture in the dbp (decoded picture buffer) might be NULL, thus we 3955 could check for a NULL picture before assigned as found. 3956 Also, split a comma operator because it is considered as a bad 3957 practice because it possible side effects. 3958 39592017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3960 3961 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 3962 libs: decoder: h265: untaint loop control variable 3963 Coverity scan bug: 3964 Scalars (for example, integers) are not properly 3965 bounds-checked (sanitized) before being used as array or pointer 3966 indexes, loop boundaries, or function arguments are considered as 3967 tainted. 3968 In this case, num_nals were not checked before used as loop control. 3969 39702017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 3971 3972 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 3973 libs: decoder: h264: remove unrequired NULL check 3974 Coverity scan bug: 3975 Dereference after null check: Either the check against null is 3976 unnecessary, or there may be a null pointer dereference. 3977 In the original commit for fill_picture_gaps() (commit 5abd2b90) the 3978 prev_picture could be NULL, that's why the code did a null check. But, 3979 since commit 52adebe7, the previous reference frames are tracked, thus 3980 there is no need to check null anymore. 3981 39822017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com> 3983 3984 * gst/vaapi/gstvaapidecode.c: 3985 vaapidecode: fix gst_caps_new_simple call 3986 https://bugzilla.gnome.org/show_bug.cgi?id=732265 3987 39882017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com> 3989 3990 * gst/vaapi/gstvaapidecode.c: 3991 vaapidecode: force add h264 MVC profiles in caps 3992 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile 3993 support in caps. 3994 https://bugzilla.gnome.org/show_bug.cgi?id=732265 3995 39962017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com> 3997 3998 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 3999 libs: decoder: h264: decode MVC base view only 4000 If processed SPS has mvc profile and the configuration is set to 4001 base-only, the frame is drop. 4002 https://bugzilla.gnome.org/show_bug.cgi?id=732265 4003 40042017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com> 4005 4006 * gst/vaapi/gstvaapidecode.c: 4007 * gst/vaapi/gstvaapidecode_props.c: 4008 vaapidecode: set h264 base-only to decoder 4009 Set the base-only value when property is set and the internal 4010 decoder is already instantiated or when the internal decoder 4011 is created. 4012 https://bugzilla.gnome.org/show_bug.cgi?id=732265 4013 40142017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com> 4015 4016 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 4017 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 4018 libs: decoder: h264: add setter for base-only mode 4019 https://bugzilla.gnome.org/show_bug.cgi?id=732265 4020 40212017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com> 4022 4023 * gst/vaapi/gstvaapidecode_props.c: 4024 * gst/vaapi/gstvaapidecode_props.h: 4025 vaapidecode_props: h264: add base-only property 4026 https://bugzilla.gnome.org/show_bug.cgi?id=732265 4027 40282017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4029 4030 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 4031 libs: encoder: h264: missing property enum documentation 4032 40332017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com> 4034 4035 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4036 libs: encoder: h264: add multi reference support 4037 Using num_ref_frames provided and the result of the Query 4038 VAConfigAttribEncMaxRefFrames, it determines the size of reference list 4039 and perform encoding with multi reference frames as the following: 4040 1\ The num_ref_frames is being considered as the number of 4041 reference picture list0 4042 2\ Encoder adds 1 reference frame more to the reference picture list1 4043 internally if b-frame encoding. 4044 3\ If num_ref_frames is bigger than the number of refrence frames 4045 supported in the driver, it will be lowered. 4046 https://bugzilla.gnome.org/show_bug.cgi?id=783803 4047 40482017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com> 4049 4050 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4051 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 4052 libs: encoder: h264: add refs property 4053 Users can provide the number of reference frame by this property. 4054 The value of the property will be considered as the number of 4055 reference picture list0 and will add 1 reference frame more to the 4056 reference picture list1 internally if b-frame encoding. 4057 If the value provided is bigger than the number of refrence frames 4058 supported in the driver, it will be lowered. 4059 https://bugzilla.gnome.org/show_bug.cgi?id=783803 4060 40612017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com> 4062 4063 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4064 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 4065 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames 4066 This function will query VAConfigAttribEncMaxRefFrames to get the 4067 maximum number of reference frames supported in the driver. 4068 This will be used for h264/h265 encoding. 4069 https://bugzilla.gnome.org/show_bug.cgi?id=783803 4070 40712017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4072 4073 * gst/vaapi/gstvaapiencode_h265.c: 4074 vaapiencode: h265: compare an unsigned int if not zero 4075 An unsigned value can never be negative, so this test (greater than 4076 zero) will always evaluate the same way. Thus change it to just if 4077 it's not zero. 4078 40792017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4080 4081 * gst/vaapi/gstvaapipluginbase.c: 4082 plugins: check gst_gl_ensure_element_data() return value 4083 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check 4084 the return value of gst_gl_ensure_element_data(). The result is a code 4085 bit cleaner. 4086 40872017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4088 4089 * gst/vaapi/gstvaapipluginutil.c: 4090 plugins: avoid dead code detection 4091 By using #elif macro, the static code analysis would stop to detect 4092 these lines as dead code. Also it is inforced the mutually exclusive 4093 environments. 4094 40952017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4096 4097 * gst/vaapi/gstvaapivideobufferpool.c: 4098 vaapivideobufferpool: don't shift by negative since it's undefined 4099 The function g_bit_nth_lsf() may return -1 if the request bit position 4100 is not avaible. Thus, this patch check if the return value is not -1 4101 in order to continue. 4102 41032017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4104 4105 * gst/vaapi/gstvaapisink.c: 4106 vaapisink: fix memory leak 4107 41082017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4109 4110 * gst/vaapi/gstvaapipostprocutil.c: 4111 vaapipostproc: fix memory leaks 4112 41132017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com> 4114 4115 * gst-libs/gst/vaapi/gstvaapidisplay.c: 4116 libs: display: when appending formats change pointers to indexes 4117 Thus, it fixes an invalid read when YV12 or I420 are not supported by 4118 the driver. 4119 https://bugzilla.gnome.org/show_bug.cgi?id=785085 4120 41212017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 4122 4123 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4124 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 4125 libs: encoder: h264: Add uncompliant mode reducing coded buffer size 4126 Added a new property "compliance-mode", which default is the normal 4127 strict compliant mode. 4128 The second mode, "restrict-buf-alloc", is to limit the coded buffer 4129 allocation size to improve performance in some specific Intel 4130 platforms (there is asignificant performance improvement in parallel 4131 encodings). Under this new mode, we use the MinCR field in A.3.1 for 4132 pre-calculating the coded-buffer size. 4133 https://bugzilla.gnome.org/show_bug.cgi?id=784590 4134 41352017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 4136 4137 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 4138 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 4139 libs: utils_h264: Extend LevelLimit table with MinCR field 4140 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits 4141 based on Annex A.3 4142 https://bugzilla.gnome.org/show_bug.cgi?id=784590 4143 41442017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4145 4146 * gst-libs/gst/vaapi/gstvaapiutils.c: 4147 libs: utils: libva 1.0 changed the logging 4148 The logging mechanism in libva has changed it's functions 4149 signatures. This patch updates that for libva versions >= 1.0 4150 https://bugzilla.gnome.org/show_bug.cgi?id=784398 4151 41522017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4153 4154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 4155 libs: decoder: h264: libva 1.0 deprecated baseline 4156 libva 1.0 deprecated H.264 baseline profile and FMO support 4157 (commit b4f332b3). 4158 https://bugzilla.gnome.org/show_bug.cgi?id=784398 4159 41602017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4161 4162 * configure.ac: 4163 * meson.build: 4164 * meson_options.txt: 4165 build: check for libva-2.0 4166 Check for libva-2.0 since libva's developers decided to increase the 4167 library's version number. 4168 https://bugzilla.gnome.org/show_bug.cgi?id=784398 4169 41702017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4171 4172 * configure.ac: 4173 * meson.build: 4174 build: blacklist only libva 0.99.0 4175 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped 4176 its API version to 1.0.0. Thus we have to blacklist only the MSDK's 4177 libva (0.99.0) 4178 https://bugzilla.gnome.org/show_bug.cgi?id=784398 4179 41802017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4181 4182 * gst-libs/gst/vaapi/meson.build: 4183 build: meson: remove gstvaapidisplaycache.c 4184 This is a missing bit of commit ec3e10f6 4185 41862017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com> 4187 4188 * configure.ac: 4189 configure: do not break configure if gtk+-3.0 devel missing 4190 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to 4191 set USE_GTK=0 if gtk+-3.0 is not available. 4192 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623 4193 Author: Hyunjun Ko <zzoon@igalia.com> 4194 Date: Wed Jul 5 15:59:43 2017 +0900 4195 tests: elements: add testsuite of vaapi context 4196 ...configure fails if gtk+-3.0 development files are missing. 4197 The "with_gtk" option defaults to "check" in configure.ac 4198 which implies that if it is not explicitly requested then 4199 configure will only enable it if it's available on the system. 4200 However, the PKG_CHECK_MODULES rule that get's activated on 4201 "check" condition did not provide default when gtk+-3.0 devel 4202 packages are not found on the system. Thus, it resulted in 4203 configure failure. 4204 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> 4205 https://bugzilla.gnome.org/show_bug.cgi?id=785452 4206 42072017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com> 4208 4209 * configure.ac: 4210 * tests/elements/Makefile.am: 4211 * tests/elements/test-vaapicontext.c: 4212 tests: elements: add testsuite of vaapi context 4213 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4214 https://bugzilla.gnome.org/show_bug.cgi?id=766704 4215 42162017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com> 4217 4218 * gst/vaapi/gstvaapisink.c: 4219 vaapisink: fail if surface display is different 4220 Replacing GstVaapiDisplay during rendering might be hiding problems 4221 at some cases, even though it's safe currently since we use cache 4222 of GstVaapidisplay. 4223 Play safe by failing if this happens. 4224 https://bugzilla.gnome.org/show_bug.cgi?id=766704 4225 42262017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com> 4227 4228 * gst/vaapi/gstvaapivideocontext.c: 4229 * gst/vaapi/gstvaapivideocontext.h: 4230 videocontext: support "gst.vaapi.app.Display" context 4231 Through "gst.vaapi.app.Display" context, users can set their own VADisplay 4232 and native display of their backend. 4233 Attributes: 4234 - display : pointer of VADisplay 4235 - x11-display : pointer of X11 display (Display *), if they're using. 4236 This patch creates GstVaapidisplayX11 if information provided through 4237 "gst.vaapi.app.Display" 4238 https://bugzilla.gnome.org/show_bug.cgi?id=766704 4239 42402017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com> 4241 4242 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 4243 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 4244 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display() 4245 Implements new API function so that users could create GstVaapiDisplay 4246 with their own VADisplay within a native display as backend. 4247 https://bugzilla.gnome.org/show_bug.cgi?id=766704 4248 42492017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com> 4250 4251 * gst-libs/gst/vaapi/gstvaapidisplay.c: 4252 libs: display: pass display info when foreign display 4253 When creating a GstVaapiDisplay using a foreign VADisplay, and render 4254 with that display, it also requires native display of the backend. 4255 https://bugzilla.gnome.org/show_bug.cgi?id=766704 4256 42572017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4258 4259 * gst-libs/gst/vaapi/Makefile.am: 4260 * gst-libs/gst/vaapi/gstvaapidisplay.c: 4261 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 4262 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 4263 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 4264 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 4265 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 4266 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 4267 libs: display: remove cache 4268 Remove a bunch of code that handles the VADisplay cache, since the 4269 context sharing should be doing this correctly. 4270 https://bugzilla.gnome.org/show_bug.cgi?id=747946 4271 42722017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com> 4273 4274 * tests/elements/Makefile.am: 4275 * tests/elements/test-vaapipostproc.c: 4276 tests: elements: add test for vaapipostproc 4277 https://bugzilla.gnome.org/show_bug.cgi?id=754885 4278 42792017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com> 4280 4281 * gst/vaapi/gstvaapipostproc.c: 4282 postproc: reconfigure when width or height changes 4283 https://bugzilla.gnome.org/show_bug.cgi?id=754885 4284 42852017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4286 4287 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 4288 libs: encoder: vp9: array terminated in zeros 4289 There is a crash when setting ref-pic-mode since the #GEnumValue 4290 array is not terminated with a structured with all memvers being 4291 zero. 4292 https://bugzilla.gnome.org/show_bug.cgi?id=785032 4293 42942017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4295 4296 * gst/vaapi/gstvaapiencode_h264.c: 4297 vaapiencode: h264: add plugin documentation 4298 Comment how the profile is set and other parameters. 4299 43002017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com> 4301 4302 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 4303 libs: decoder: h264: push frames as soon as possible 4304 Push frames downstream as soon as possible instead of waiting until 4305 they are ejected from the DPB. 4306 This patch makes the decoder not comply with the H.264 specification, 4307 but it is required for some video cameras. 4308 https://bugzilla.gnome.org/show_bug.cgi?id=762509 4309 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4310 43112017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4312 4313 * gst/vaapi/gstvaapidecode_props.c: 4314 vaapidecode_props: h264: set low-latency in decoder 4315 Set the low-latency property if the H264 decoder is already 4316 instantiated, thus you could change the behavior in run-time. 4317 https://bugzilla.gnome.org/show_bug.cgi?id=783588 4318 43192017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4320 4321 * gst/vaapi/gstvaapidecode.c: 4322 vaapidecode: set h264 low latency to decoder 4323 https://bugzilla.gnome.org/show_bug.cgi?id=783588 4324 43252017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4326 4327 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 4328 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 4329 libs: decoder: h264: add getter/setter for low latency mode 4330 https://bugzilla.gnome.org/show_bug.cgi?id=783588 4331 43322017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4333 4334 * gst/vaapi/gstvaapidecode_props.c: 4335 * gst/vaapi/gstvaapidecode_props.h: 4336 vaapidecode_props: h264: add low latency property 4337 Adding support for private data. 4338 https://bugzilla.gnome.org/show_bug.cgi?id=783588 4339 43402017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4341 4342 * gst/vaapi/Makefile.am: 4343 * gst/vaapi/gstvaapidecode.c: 4344 * gst/vaapi/gstvaapidecode_props.c: 4345 * gst/vaapi/gstvaapidecode_props.h: 4346 * gst/vaapi/meson.build: 4347 vaapidecode_props: add skeleton for h264 decoder properties 4348 https://bugzilla.gnome.org/show_bug.cgi?id=783588 4349 43502017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4351 4352 * gst/vaapi/gstvaapidecode.c: 4353 vaapidecode: properties callback in decoders map 4354 https://bugzilla.gnome.org/show_bug.cgi?id=783588 4355 43562017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com> 4357 4358 * meson.build: 4359 meson: find python3 via python3 module 4360 https://bugzilla.gnome.org/show_bug.cgi?id=783198 4361 43622017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com> 4363 4364 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4365 libs: encoder: h264: submit sps in case of IDR picture 4366 If the picture is IDR, also submit a SPS header. 4367 This means when frame number reaches to keyframe-period or an force 4368 key unit event arrives, we insert SPS/PPS again. 4369 https://bugzilla.gnome.org/show_bug.cgi?id=776712 4370 43712017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com> 4372 4373 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4374 libs: encoder: h264: set the frame as IDR if forced key unit 4375 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage 4376 the `frame-lost` event in the case of streaming, such as RTP. 4377 In case of this event, it is needed to start new GOP rather than just 4378 produce an I-frame. 4379 https://bugzilla.gnome.org/show_bug.cgi?id=776712 4380 43812017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 4382 4383 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4384 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 4385 libs: encoder: h264: insert AU delimiter 4386 Insert an AUD as the first NAL of each encoded frame. 4387 Some applications require Access Unit Delimiter for decoding the 4388 stream. 4389 The AU delimeter insertion is done only when the aud parameter is 4390 TRUE (by default is disabled). The reason of this it is because this 4391 header is only available from Intel Gen9 and the VA intel driver 4392 should be 1.8 or superior. Otherwise, the output will be corrupted. 4393 https://bugzilla.gnome.org/show_bug.cgi?id=776712 4394 Signed-off-by: Victor Jaquez <vjaquez@igalia.com> 4395 43962017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com> 4397 4398 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4399 libs: encoder: h264: initialize all elements of view_ids 4400 Currently when num_views is changed by multiview-mode on sink caps, it produces 4401 wrong MVC encoded stream since the array view_ids is not set properly according 4402 to changed num_views. 4403 So this patch initializes all of the array sequentially to handle this case. 4404 Side effect is not going to happen by this patch since this array is being 4405 handled by num_views. 4406 https://bugzilla.gnome.org/show_bug.cgi?id=784321 4407 44082017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com> 4409 4410 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4411 Revert "encoder: h264: Use high profile by default" 4412 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75. 4413 https://bugzilla.gnome.org/show_bug.cgi?id=757941 4414 44152017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com> 4416 4417 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4418 libs: encoder: h264: set profile via capsfilter 4419 Until now, the encoder ignored the profile in src caps and chose one 4420 according with the given parameters. But the encoder must honor the 4421 profile specifed in src caps. 4422 This patch do that, and if the encoder needs to choose the profile, 4423 it will do it by following these rules: 4424 1\ If given parameters are not compatible with given profile, the 4425 encoder will bail out with an error. 4426 2\ The encoder will choose the higher profile indicated in the 4427 src caps. 4428 https://bugzilla.gnome.org/show_bug.cgi?id=757941 4429 44302017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com> 4431 4432 * gst/vaapi/gstvaapiencode_h264.c: 4433 vaapiencode: h264: set profile to src caps 4434 So far vaapi encoder does not set profile to src caps. This patch makes it 4435 setting profile to src caps, which is determined by itself. 4436 In addition, if encoder chose different profile, which is not negotiated with 4437 downstream, we should set compatible profile to make negotiation working. 4438 https://bugzilla.gnome.org/show_bug.cgi?id=757941 4439 44402017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4441 4442 * gst/vaapi/gstvaapiencode_h264.c: 4443 * gst/vaapi/gstvaapiencode_h264.h: 4444 vaapiencode: h264: verify if requested profile is supported 4445 Check if the requested profile in source caps, is supported by the 4446 VA driver. If it is not, an info log message is send saying that 4447 another (compatible?) profile will be used. 4448 https://bugzilla.gnome.org/show_bug.cgi?id=757941 4449 44502017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4451 4452 * gst/vaapi/gstvaapiencode_h264.c: 4453 vaapiencode: h264: improve set_config() vmethod 4454 First check if downstream requests ANY caps. If so, byte-stream is 4455 used and the profile will be choose by the encoder. If dowstream 4456 requests EMPTY caps, the negotiation will fail. 4457 Lately, byte-stream and profile are looked in the allowed caps. 4458 https://bugzilla.gnome.org/show_bug.cgi?id=757941 4459 44602017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4461 4462 * gst/vaapi/gstvaapiencode_h264.c: 4463 vaapiencode: h264: check for avc in set_config() 4464 The check for avc stream format was done in the vaapi encoder's 4465 vmethod get_caps(), but that is wrong since it has to be check 4466 when encoder set_format(). 4467 https://bugzilla.gnome.org/show_bug.cgi?id=757941 4468 44692017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com> 4470 4471 * gst/vaapi/gstvaapipostprocutil.c: 4472 vaapipostproc: set multivew-mode flags to src caps 4473 vaapipostproc didn't negotiate the proper multiview caps losing 4474 downstream information. 4475 This patch enables the playing of MVC encoded stream by setting 4476 the proper multiview mode/flags and views to src caps, according 4477 to sink caps. 4478 https://bugzilla.gnome.org/show_bug.cgi?id=784320 4479 44802016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com> 4481 4482 * gst/vaapi/gstvaapipostproc.c: 4483 vaapipostproc: add support for DMABuf caps feature 4484 https://bugzilla.gnome.org/show_bug.cgi?id=755072 4485 Signed-off-by: Julien Isorce <j.isorce@samsung.com> 4486 44872017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4488 4489 * gst/vaapi/gstvaapidecode.c: 4490 vaapidecode: add support for DMABuf caps feature 4491 https://bugzilla.gnome.org/show_bug.cgi?id=755072 4492 Original-patch-by: Julien Isorce <j.isorce@samsung.com> 4493 44942017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4495 4496 * gst/vaapi/gstvaapipluginbase.c: 4497 vaapipluginbase: force dmabuf allocator if DMABuf caps feature 4498 Instantiate all dmabuf allocator for src pad buffer pool if the 4499 src caps ask for memory:DMABuf feature. 4500 https://bugzilla.gnome.org/show_bug.cgi?id=755072 4501 45022016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com> 4503 4504 * gst/vaapi/gstvaapipluginutil.c: 4505 * gst/vaapi/gstvaapipluginutil.h: 4506 vaapipluginutil: add support for DMABuf caps feature 4507 https://bugzilla.gnome.org/show_bug.cgi?id=755072 4508 Signed-off-by: Julien Isorce <j.isorce@samsung.com> 4509 Signed-off-by: Victor Jaquez <vjaquez@igalia.com> 4510 vaapipluginutil: add support for DMABuf caps feature 4511 45122017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4513 4514 * gst/vaapi/gstvaapipluginbase.c: 4515 vaapipluginbase: dmabuf memory map trial for raw caps 4516 Only push dmabuf-based buffers with raw caps if gst_memory_map() 4517 succeeds. Otherwise, use the the vaapi surfaces allocator. 4518 https://bugzilla.gnome.org/show_bug.cgi?id=755072 4519 https://bugzilla.gnome.org/show_bug.cgi?id=774649 4520 Original-patch-by: Julien Isorce <j.isorce@samsung.com> 4521 45222016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 4523 4524 * gst/vaapi/gstvaapivideomemory.c: 4525 * gst/vaapi/gstvaapivideomemory.h: 4526 vaapivideomemory: add gst_vaapi_dmabuf_can_map() 4527 This new method checks the specified allocator can create GstMemory that can 4528 be mapped. 4529 https://bugzilla.gnome.org/show_bug.cgi?id=755072 4530 45312017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4532 4533 * gst/vaapi/gstvaapivideobufferpool.c: 4534 vaapivideobufferpool: fix regression with video metas 4535 There is another regression with 7a206923 when setting the video 4536 info for the video meta, it should be the one from the image's 4537 allocator rather from the allocation caps. 4538 Test pipeline: 4539 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \ 4540 ! tee ! videoconvert ! videoscale \ 4541 ! video/x-raw, width=1920, height=1080 ! xvimagesink 4542 45432017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4544 4545 * gst/vaapi/gstvaapipluginbase.c: 4546 * gst/vaapi/gstvaapivideobufferpool.c: 4547 plugins: update buffer size with the one reported by allocator 4548 There is a regression in 7a206923, since the buffer pool ditches all 4549 the buffers generated by them because the pool config size is 4550 different of the buffer's size. 4551 Test pipeline: 4552 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \ 4553 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \ 4554 --gst-debug=GST_PERFORMANCE:5 4555 The allocator may update the buffer size according to the VA surface 4556 properties. In order to do this, the video info is modified when the 4557 allocator is created, which reports through the allocation info the 4558 updated size, and set it to the pool config. 4559 45602017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com> 4561 4562 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 4563 libs: decoder: h264: initialize active_sps/pps in reset 4564 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed, 4565 they introduced regression in seek. 4566 Formerly, once seek is done, decoder drops P-frames until I-frame arrives. 4567 But since the commits landed, it doesn't drop P-frame and does try to 4568 decode it continuously because active_sps is still alive. See ensure_sps function. 4569 But there are prev_frames and prev_ref_frames reset already, then it 4570 causes assertion. 4571 So it's necessary to reset active_sps/pps also in reset method. 4572 https://bugzilla.gnome.org/show_bug.cgi?id=783726 4573 45742017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4575 4576 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4577 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4578 libs: encoder: fix compilation with old versions of libva 4579 There are some symbols that are not used when compiling with old 4580 version of libva and those generates a compilation error. 4581 Original-patch-by: Matt Staples <staples255@gmail.com> 4582 45832017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 4584 4585 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4586 libs: encoder: Fix the quality level clamping 4587 Change the hard-coded range of quality-level from {1-8} to {1-7}, 4588 since it is the range Intel Open source driver supports. 4589 Also perform the range clamping only if the user provided 4590 quality-level is greater than the max-range suppored by the driver, 4591 because there could be non-intel drivers giving lower value than 4592 the hard-coded max value 7. 4593 https://bugzilla.gnome.org/show_bug.cgi?id=783567 4594 45952017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 4596 4597 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4598 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4599 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 4600 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4601 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4602 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 4603 libs: encoder: log out the name of the profile 4604 Instead of printing a number, it is more readable to log out, in 4605 case of error, the name of the failing profile. 4606 46072017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com> 4608 4609 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4610 libs: encoder: h264: changes raw number of profile to macro name of its 4611 Changes raw number of profile to macro name of its to improve readability. 4612 https://bugzilla.gnome.org/show_bug.cgi?id=757941 4613 46142017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4615 4616 * gst/vaapi/gstvaapivideobufferpool.c: 4617 vaapivideobufferpool: remove allocation_vinfo private attribute 4618 There is no need to keep this attribute internally since it is 4619 already managed by the allocator. 4620 https://bugzilla.gnome.org/show_bug.cgi?id=783599 4621 46222017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4623 4624 * gst/vaapi/gstvaapivideobufferpool.c: 4625 vaapivideobufferpool: refactor set_config() 4626 Refactor the set_config() virtual method considering a cleaner 4627 approach to allocator instanciation, if it it not set or if it is 4628 not valid for the pool. 4629 https://bugzilla.gnome.org/show_bug.cgi?id=783599 4630 46312017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4632 4633 * gst/vaapi/gstvaapipluginbase.c: 4634 * gst/vaapi/gstvaapivideobufferpool.c: 4635 * gst/vaapi/gstvaapivideomemory.c: 4636 * gst/vaapi/gstvaapivideomemory.h: 4637 plugins: distinguish allocation and negotiation caps 4638 The vaapi video decoders might have different allocation caps from 4639 the negotiation caps, thus the GstVideoMeta shall use the negotiation 4640 caps, not the allocation caps. 4641 This was done before reusing gst_allocator_get_vaapi_video_info(), 4642 storing there the negotiation caps if they differ from the allocation 4643 ones, but this strategy felt short when the allocator had to be reset 4644 in the vaapi buffer pool, since we need both. 4645 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and 4646 gst_allocator_get_vaapi_negotiated_video_info() to store the 4647 negotiated video info in the allocator, and distinguish it from 4648 the allocation video info. 4649 https://bugzilla.gnome.org/show_bug.cgi?id=783599 4650 46512017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4652 4653 * gst/vaapi/gstvaapivideomemory.c: 4654 * gst/vaapi/gstvaapivideomemory.h: 4655 vaapivideomemory: rename qdata quarks and ids 4656 Also the parameter names were renamed to reflect their origin 4657 and purpose. 4658 https://bugzilla.gnome.org/show_bug.cgi?id=783599 4659 46602017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4661 4662 * gst/vaapi/gstvaapivideobufferpool.c: 4663 vaapivideobufferpool: rename local variables 4664 Renamed local video info structure names in set_config() vitual 4665 method. The purpose of their renaming is to clarify the origin 4666 of those structures, whether come from passed caps parameter 4667 (new_allocation_vinfo) or from the configured allocator 4668 (allocator_vinfo). 4669 https://bugzilla.gnome.org/show_bug.cgi?id=783599 4670 46712017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4672 4673 * gst/vaapi/gstvaapivideobufferpool.c: 4674 vaapivideobufferpool: rename video info structures 4675 Renamed private GstVideoInfo structure video_info to allocation_vinfo 4676 and alloc_info to negotiated_vinfo. 4677 The purpose of these renaming is to clarify the origin and purpose of 4678 these private variables: 4679 video_info (now allocation_vinfo) comes from the bufferpool 4680 configuration. It describes the physical video resolution to be 4681 allocated by the allocator, which may be different from the 4682 negotiated one. 4683 alloc_info (now vmeta_vinfo) comes from the negotiated caps in 4684 the pipeline. It represents how the frame is going to be mapped 4685 using the video meta. 4686 In Intel's VA-API backend, the allocation_vinfo resolution is 4687 bigger than the negotiated_info. 4688 https://bugzilla.gnome.org/show_bug.cgi?id=783599 4689 46902017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4691 4692 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4693 libs: encoder: set framerate if bigger than 0/1 4694 Just set the framerate parameter if the framerate numerator and 4695 denominator are bigger than zero. 4696 Otherwise, in Intel Gen6 driver, a warning is raised disabling the 4697 bitrate control. 4698 Original-patch-by: Hyunjun Ko <zzoon@igalia.com> 4699 https://bugzilla.gnome.org/show_bug.cgi?id=783532 4700 47012017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4702 4703 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4704 libs: encoder: bitrate target percentage calculation 4705 If the rate control is set to Constant Bit Rate (CBR) the target 4706 percentage is 100%, otherwise is 70% 4707 47082017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4709 4710 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4711 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4712 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4713 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4714 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4715 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 4716 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param 4717 Centralize the common configuration for the Rate Control parameter, 4718 thus can be overloaded per each specific encoder. 4719 47202017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4721 4722 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4723 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4724 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4725 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4726 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4727 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 4728 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param 4729 Since the framerate VA parameter is calculated equally among all the 4730 encoders, it is better to handle it in the base encoder class. 4731 47322016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 4733 4734 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 4735 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h: 4736 libs: encoder: vp9: Adds CBR and VBR Encoding support 4737 https://bugzilla.gnome.org/show_bug.cgi?id=766832 4738 Signed-off-by: Hyunjun Ko <zzoon@igalia.com> 4739 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4740 47412017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com> 4742 4743 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4744 libs: encoder: vp8: Adds VBR Encoding support 4745 https://bugzilla.gnome.org/show_bug.cgi?id=778732 4746 47472017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com> 4748 4749 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4750 libs: encoder: h265: Adds VBR Encoding support 4751 Enables Variable BitRate mode, which does set FrameRate and RateControl 4752 parameters. 4753 https://bugzilla.gnome.org/show_bug.cgi?id=778732 4754 47552017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com> 4756 4757 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4758 libs: encoder: Describes more detail about the bitrate property 4759 https://bugzilla.gnome.org/show_bug.cgi?id=778732 4760 47612017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4762 4763 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4764 libs: encoder: h265: add rate control parameter 4765 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4766 47672017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4768 4769 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4770 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4771 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4772 libs: encoder: h264,h265,mpeg2: add framerate parameter 4773 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4774 47752017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4776 4777 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4778 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4779 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4780 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4781 libs: encoder: vp8,h264,h265,mpeg2: set misc param once 4782 Instead of recalculating the miscellaneous buffer parameters for 4783 every buffer, it is only done once, when the encoder is configured. 4784 And for every buffer, the same structures are just copied. 4785 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4786 47872017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4788 4789 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4790 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4791 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4792 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4793 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 4794 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4795 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters 4796 This is patch pretends to decouple the assignation of the values 4797 in the parameter structures and the VA buffer's parameters setting. 4798 It may lead to some issues since HRD, framerate or controlrate may 4799 not be handled by the specific encoder, but they are set in 4800 the VA buffer's parameters. 4801 I leave as it because this patch is just a transitional patch. 4802 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4803 48042017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4805 4806 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4807 libs: encoder: vp8: fix frame rate calculation 4808 According to the VA documentation: 4809 The framerate is specified as a number of frames per second, 4810 as a fraction. The denominator of the fraction is given in 4811 the top half (the high two bytes) of the framerate field, and 4812 the numerator is given in the bottom half (the low two bytes). 4813 For example, if framerate is set to (100 << 16 | 750), this is 4814 750 / 100, hence 7.5fps. 4815 If the denominator is zero (the high two bytes are both zero) 4816 then it takes the value one instead, so the framerate is just 4817 the integer in the low 2 bytes. 4818 This patch fixes the the framerate calculation in vp8 encoder 4819 according to this. 4820 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4821 48222017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4823 4824 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4825 libs: encoder: vp8: refactor FrameRate parameter 4826 Move frame-rate parameter from ensure_misc_params() to 4827 ensure_contro_rate_param() since it only has meaning when the 4828 control rate is either VBR or CBR. 4829 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4830 48312017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4832 4833 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4834 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4835 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4836 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4837 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR 4838 Move the Hypothetical Reference Decoder (HRD) parameter, from 4839 ensure_misc_params() to ensure_control_rate_params(), since it 4840 only shall be defined when the control rate is either VBR or CBR. 4841 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4842 48432017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4844 4845 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4846 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4847 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4848 libs: encoder: h264,vp8,mpeg2: refactor control rate 4849 Instead of filling the control rate param in ensure_misc_params(), 4850 this patch refactor it out, as a first step to merge the same code 4851 for all the encoders. 4852 https://bugzilla.gnome.org/show_bug.cgi?id=783449 4853 48542017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4855 4856 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4857 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4858 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 4859 libs: encoder: h264, h265, mpeg2: remove assert 4860 Remove spurious asserts for misc parameters. If they cannot be 4861 allocated, FALSE is already returned. 4862 48632017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4864 4865 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4866 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 4867 libs: encoder: use VA quality level structure 4868 Instead of using a proxy to story the buffer quality level, the 4869 encoder now uses the native VA structure, which is copied to the 4870 dynamically allocated VAEncMiscParameterBuffer. 4871 This approach is computationally less expensive. 4872 48732017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4874 4875 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 4876 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 4877 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4878 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 4879 libs: standardize the FIXME comment 4880 This is a trivial patch that makes homogeneous the FIXME tag in 4881 comments. 4882 For more info about these comment style: 4883 http://wiki.c2.com/?FixmeComment 4884 48852017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com> 4886 4887 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 4888 libs: encoder: vp8: set quality level regardless of rate control mode 4889 https://bugzilla.gnome.org/show_bug.cgi?id=782957 4890 48912017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4892 4893 * gst-libs/gst/vaapi/gstvaapiencoder.c: 4894 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4895 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 4896 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 4897 libs: encoder: check for maximum number of slices 4898 Right now, H264 and HEVC can set as a property the number of slices to 4899 process. But each driver can set a maximum number of slices, depending 4900 on the supported profile & entry point. 4901 This patch verifies the current num_slices to process against the maximum 4902 permitted by the driver and the media size. 4903 https://bugzilla.gnome.org/show_bug.cgi?id=780955 4904 49052017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4906 4907 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h: 4908 libs: utils: mark functions as internals 4909 The functions in this header are internal to the library. 4910 49112017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4912 4913 * gst-libs/gst/vaapi/gstvaapicontext.h: 4914 libs: context: add missing documentation 4915 Document the region-of-interest configuration variables. 4916 49172017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4918 4919 * tests/elements/test-vaapisink.c: 4920 tests: elements: vaapisink: handle nav events 4921 The test app can now handle navigation events to rotate the 4922 display. 4923 49242017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4925 4926 * tests/elements/test-vaapisink.c: 4927 tests: elements: clean up vaapisink test 4928 - Use gst_element_send_event() instead of gst_pad_push_event() 4929 - don't zero App structure 4930 - check for pipeline parsing error 4931 - only get vaapisink for property set 4932 49332017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com> 4934 4935 * gst/vaapi/gstvaapisink.c: 4936 vaapisink: keep handle_events flag except that if user want to set 4937 When state of vaapisink is changed from PLAYING to NULL, the handle_events 4938 flag is set to FALSE, and never recovered, and then event thread is never 4939 going to run. 4940 So we should allow to set the flag only when users try it. 4941 https://bugzilla.gnome.org/show_bug.cgi?id=782543 4942 49432017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com> 4944 4945 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 4946 libs: window: x11: fix src rect info when using vpp 4947 Since we started using VPP in VaapiWindowX11, we need to care about 4948 the case that src rect and window's size are different. 4949 So, once VPP has converted to other format, we should honor the 4950 size of the VPP's surface as source rect. Otherwise, it is cropped 4951 according the previous size of the source rect. 4952 https://bugzilla.gnome.org/show_bug.cgi?id=782542 4953 49542017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4955 4956 * gst/vaapi/gstvaapipluginutil.c: 4957 plugins: remove par from caps negotiation 4958 https://bugzilla.gnome.org/show_bug.cgi?id=781759 4959 49602017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com> 4961 4962 * tests/elements/Makefile.am: 4963 * tests/elements/test-roi.c: 4964 tests: elements: add an example for ROI 4965 This implements a pipleint to recognize difference between ROI and non-ROI. 4966 See comments in this code in detail. 4967 https://bugzilla.gnome.org/show_bug.cgi?id=768248 4968 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4969 49702017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com> 4971 4972 * gst/vaapi/gstvaapiencode.c: 4973 * gst/vaapi/gstvaapiencode_h264.c: 4974 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest 4975 Handles new custom event GstVaapiEncoderRegionOfInterest 4976 to enable/disable a ROI region. 4977 Writes a way to use new event to document. 4978 https://bugzilla.gnome.org/show_bug.cgi?id=768248 4979 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4980 49812017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com> 4982 4983 * tests/simple-encoder.c: 4984 tests: simple-encoder: add an option to set ROI 4985 $ simple-encoder -r inputfile.y4m 4986 And you'll got an output file in H264 with two regions of interest. 4987 https://bugzilla.gnome.org/show_bug.cgi?id=768248 4988 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4989 49902017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com> 4991 4992 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 4993 libs: encoder: h264: set ROI params during encoding 4994 Set ROI params during encoding each frame, which are set via 4995 gst_vaapi_encoder_add_roi () 4996 https://bugzilla.gnome.org/show_bug.cgi?id=768248 4997 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 4998 49992017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com> 5000 5001 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5002 * gst-libs/gst/vaapi/gstvaapiencoder.h: 5003 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 5004 libs: encoder: add api gst_vaapi_encoder_add/del_roi 5005 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions. 5006 https://bugzilla.gnome.org/show_bug.cgi?id=768248 5007 50082017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com> 5009 5010 * gst-libs/gst/vaapi/gstvaapicontext.c: 5011 * gst-libs/gst/vaapi/gstvaapicontext.h: 5012 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5013 libs: encoder/context: query region of interest support 5014 Queries if the driver supports "Region of Interest" (ROI) during the config 5015 creation. 5016 This attribute conveys whether the driver supports region-of-interest (ROI) 5017 encoding, based on user provided ROI rectangles. The attribute value is 5018 partitioned into fields as defined in the VAConfigAttribValEncROI union. 5019 If ROI encoding is supported, the ROI information is passed to the driver 5020 using VAEncMiscParameterTypeROI. 5021 https://bugzilla.gnome.org/show_bug.cgi?id=768248 5022 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5023 50242017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5025 5026 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 5027 libs: encoder: fix a comment 5028 50292017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5030 5031 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5032 libs: encoder: guard quality level configuration 5033 The quality level appeared in VA-API 0.36. So let's guard its 5034 usage. 5035 50362017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 5037 5038 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5039 * gst-libs/gst/vaapi/gstvaapiencoder.h: 5040 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 5041 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5042 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 5043 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 5044 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 5045 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 5046 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 5047 encoders: add quality level tuning 5048 This patch adds the handling of VAEncMiscParameterTypeQualityLevel, 5049 in gstreamer-vaapi encoders: 5050 The encoding quality could be set through this structure, if the 5051 implementation supports multiple quality levels. The quality level set 5052 through this structure is persistent over the entire coded sequence, or 5053 until a new structure is being sent. The quality level range can be queried 5054 through the VAConfigAttribEncQualityRange attribute. A lower value means 5055 higher quality, and a value of 1 represents the highest quality. The quality 5056 level setting is used as a trade-off between quality and speed/power 5057 consumption, with higher quality corresponds to lower speed and higher power 5058 consumption. 5059 The quality level is set by the element's parameter "quality-level" with a 5060 hard-coded range of 1 to 8. 5061 Later, when the encoder is configured in run time, just before start 5062 processing, the quality level is scaled to the codec range. If 5063 VAConfigAttribEncQualityRange is not available in the used VA backend, then 5064 the quality level is set to zero, which means "disabled". 5065 All the available codecs now process this parameter if it is available. 5066 https://bugzilla.gnome.org/show_bug.cgi?id=778733 5067 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5068 50692017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com> 5070 5071 * configure.ac: 5072 * meson.build: 5073 Back to development 5074 5075=== release 1.12.0 === 5076 50772017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com> 5078 5079 * ChangeLog: 5080 * NEWS: 5081 * configure.ac: 5082 * gstreamer-vaapi.doap: 5083 * meson.build: 5084 Release 1.12.0 5085 50862017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5087 5088 * gst/vaapi/gstvaapidecodebin.c: 5089 Revert "vaapidecodebin: fix element's classification" 5090 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf. 5091 50922017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com> 5093 5094 * configure.ac: 5095 * meson.build: 5096 build: Require libva < 0.99.0 5097 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so 5098 fail to configure instead of failing late in the build. 5099 This libva is bundled in msdk[1] and it is ahead in time with 5100 respect the official and open source libva[2]. GStreamer-VAAPI 5101 only supports the latter for now. 5102 1. https://software.intel.com/en-us/media-sdk/download 5103 2. https://github.com/01org/libva/ 5104 https://bugzilla.gnome.org/show_bug.cgi?id=781866 5105 51062017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com> 5107 5108 * gst/vaapi/gstvaapidecodebin.c: 5109 vaapidecodebin: fix element's classification 5110 This bin should have similar classification as decodebin which is 5111 "Generic/Bin/Decoder" otherwise it will appear wrongly as video 5112 decoder. 5113 Signed-off-by: Victor Toso <victortoso@redhat.com> 5114 https://bugzilla.gnome.org/show_bug.cgi?id=782063 5115 5116=== release 1.11.91 === 5117 51182017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com> 5119 5120 * ChangeLog: 5121 * NEWS: 5122 * configure.ac: 5123 * gstreamer-vaapi.doap: 5124 * meson.build: 5125 Release 1.11.91 5126 51272017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5128 5129 * gst/vaapi/gstvaapipluginutil.c: 5130 Revert "plugins: reject pixel-aspect-ratio with value 0/1" 5131 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26. 5132 51332017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5134 5135 * gst/vaapi/gstvaapipluginutil.c: 5136 plugins: reject pixel-aspect-ratio with value 0/1 5137 Do not negotiate a pixel-aspect-ratio of 0/1. 5138 https://bugzilla.gnome.org/show_bug.cgi?id=781759 5139 51402017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5141 5142 * gst/vaapi/gstvaapipostprocutil.c: 5143 * gst/vaapi/gstvaapisink.c: 5144 plugins: handle pixel-aspect-ratio with value 0/1 5145 When downstream negotiates a pixel-aspect-ratio of 0/1, the 5146 calculations for resizing and formatting in vaapipostproc and 5147 vaapisink, respectively, failed, and thus the pipeline. 5148 This patch handles this situation by converting p-a-r of 0/1 to 5149 1/1. This is how other sinks, such as glimagesink, work. 5150 https://bugzilla.gnome.org/show_bug.cgi?id=781759 5151 51522017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com> 5153 5154 * gst/vaapi/gstvaapivideobufferpool.c: 5155 vaapivideobufferpool: fix leak of created allocator 5156 Since it's created by itself, it should be unref-counted 5157 after gst_buffer_pool_config_set_allocator call. Afterwards, 5158 this allocator will be ref-counted again when assigning to priv->allocator. 5159 https://bugzilla.gnome.org/show_bug.cgi?id=781577 5160 51612017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5162 5163 * gst/vaapi/gstvaapivideobufferpool.c: 5164 vaapivideobufferpool: create or reconfig allocator 5165 Sometimes a video decoder could set different buffer pool 5166 configurations, because their frame size changes. In this case we 5167 did not reconfigure the allocator. 5168 This patch enables this use case, creating a new allocator inside 5169 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based. 5170 If so, it is just reconfigured, since it doesn't have a surface pool. 5171 https://bugzilla.gnome.org/show_bug.cgi?id=781577 5172 51732017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5174 5175 * tests/elements/Makefile.am: 5176 test: elements: fix compilation flags 5177 This issue was spotten on bug #766704 5178 Original-patch-by: Hyunjun Ko <zzoon@igalia.com> 5179 51802017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com> 5181 5182 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5183 libs: windows: wayland: fix leak if failure of sync 5184 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY 5185 during destruction. 5186 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens. 5187 This surface is not attached to anything at this moment, so we should release 5188 it manually. 5189 https://bugzilla.gnome.org/show_bug.cgi?id=781695 5190 51912017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com> 5192 5193 * common: 5194 Automatic update of common submodule 5195 From 60aeef6 to 48a5d85 5196 51972017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com> 5198 5199 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5200 libs: window: wayland: mark frames as done 5201 When the frame listener callbacks 'done', the number of pending 5202 frames are decreased. Nonetheless, there might be occasions where 5203 the buffer listener callbacks 'release', without calling previously 5204 frame's 'done'. This leads to problem with 5205 gst_vaapi_window_wayland_sync() operation. 5206 This patch marks as done those frames which were callbacked, but if 5207 the buffer callbacks 'release' and associated frame is not marked 5208 as 'done' it is so, thus the number of pending frames keeps correct. 5209 https://bugzilla.gnome.org/show_bug.cgi?id=780442 5210 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5211 52122017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5213 5214 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5215 libs: window: wayland: don't sync at destroy() 5216 Don't call gst_vaapi_window_wayland_sync() when destroying the 5217 wayland window instance, since it might lead to a lock at 5218 gst_poll_wait() when more than one instances of vaapisink are 5219 rendering in the same pipeline, this is because they share the 5220 same window. 5221 Since now all the frames are freed we don't need to freed the 5222 private last_frame, since its address is invalid now. 5223 https://bugzilla.gnome.org/show_bug.cgi?id=780442 5224 Signed-off-by: Hyunjun Ko <zzoon@igalia.com> 5225 52262017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com> 5227 5228 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5229 libs: window: wayland: null buffer at destroy() 5230 Fix leakage of the last wl buffer. 5231 VAAPI wayland sink needs to send a null buffer while destruction, 5232 it assures that all the wl buffers are released. Otherwise, the last 5233 buffer's callback might be not called, which leads to leak of 5234 GstVaapiDisplay. 5235 This was inspired by gstwaylandsink. 5236 https://bugzilla.gnome.org/show_bug.cgi?id=774029 5237 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5238 52392016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com> 5240 5241 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5242 libs: window: wayland: rt event queue at destroy() 5243 The proxy object of wl_buffer for the last frame remains in the 5244 wl_map. Even though we call wl_buffer_destroy() in 5245 frame_release_callback(), the proxy object remains without being 5246 removed, since proxy object is deleted when wayland server sees the 5247 delete request and sends 'delete_id' event. 5248 We need to call roundtrip before destroying event_queue so that the 5249 proxy object is removed. Otherwise, it would be mess up as receiving 5250 'delete_id' event from previous play, when playing in the next 5251 va/wayland window with the same wl_display connection. 5252 https://bugzilla.gnome.org/show_bug.cgi?id=773689 5253 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5254 52552017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5256 5257 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5258 libs: window: wayland: cancel read at poll message 5259 Always call wl_display_cancel_read() when an errno is set, but 5260 different to EAGAIN or EINTR. 5261 https://bugzilla.gnome.org/show_bug.cgi?id=780442 5262 52632017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com> 5264 5265 * gst/vaapi/gstvaapidecodebin.c: 5266 * gst/vaapi/gstvaapidecodebin.h: 5267 vaapidecodebin: skips configuration once it's done 5268 Skips configuration of creation of vpp/capsfilter and link them once it's done. 5269 Otherwise, it always fails when it's trying to re-start playback. 5270 https://bugzilla.gnome.org/show_bug.cgi?id=781573 5271 52722017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5273 5274 * gst/vaapi/gstvaapipostprocutil.c: 5275 vaapipostproc: fixes for memory leaks 5276 The use of gst_vaapi_value_set_format() and gst_structure_*_value() 5277 requires to clear the used GValue to avoid a memory leak. 5278 52792016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5280 5281 * gst/vaapi/gstvaapipluginbase.c: 5282 * gst/vaapi/gstvaapipluginbase.h: 5283 plugins: enable direct rendering with envvar 5284 Direct rendering (use vaDeriveImage rather than vaPutImage) has better 5285 performance in some Intel platforms (Haswell, for example) but in others 5286 (Skylake) is the opposite. 5287 In order to have some control, the patch enables the direct rendering 5288 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING. 5289 Also it seems to generating some problems with gallium/radeon backend. 5290 See bug #779642. 5291 https://bugzilla.gnome.org/show_bug.cgi?id=775848 5292 52932017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com> 5294 5295 * gst/vaapi/gstvaapidecode.c: 5296 vaapidecode: Don't renegotiate on every flush 5297 If caps don't actually change, don't update the 5298 decoder and don't set the do_renego flag forcing 5299 downstream renegotiation 5300 https://bugzilla.gnome.org/show_bug.cgi?id=781142 5301 53022017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com> 5303 5304 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 5305 h264 decoder: Implement reset() for faster flush 5306 Implement a custom reset() function for faster flushes 5307 that just clear the reference pictures but don't reallocate 5308 the DPB or clear out SPS/PPS 5309 https://bugzilla.gnome.org/show_bug.cgi?id=781142 5310 53112017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com> 5312 5313 * gst-libs/gst/vaapi/gstvaapidecoder.c: 5314 * gst-libs/gst/vaapi/gstvaapidecoder.h: 5315 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 5316 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 5317 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 5318 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 5319 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 5320 * gst/vaapi/gstvaapidecode.c: 5321 Implement decoder reset on flush, rather than recreating 5322 Clear decoders out on a flush but keep the same instance, 5323 rather than completely recreating them. That avoids 5324 unecessarily freeing and recreating surface pools 5325 and contexts, which can be quite expensive 5326 https://bugzilla.gnome.org/show_bug.cgi?id=781142 5327 53282017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5329 5330 * gst-libs/gst/vaapi/gstvaapiwindow.c: 5331 libs: window: don't add an unused function 5332 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines 5333 a function that is never used, thus when compiling we might see 5334 this warning (clang): 5335 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function] 5336 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow, 5337 ^ 5338 https://bugzilla.gnome.org/show_bug.cgi?id=759533 5339 53402017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5341 5342 * gst-libs/gst/vaapi/gstvaapiwindow.c: 5343 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 5344 libs: window: remove surface_format member 5345 Since we always convert to NV12, there is no need to keep a 5346 variable for that. Let us hard code it. 5347 https://bugzilla.gnome.org/show_bug.cgi?id=759533 5348 53492017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com> 5350 5351 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5352 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 5353 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 5354 libs: window: x11/wayland: use new api for conversion 5355 Since gst_vaapi_window_vpp_convert_internal is created, 5356 GstVaapiWindowX11/Wayland can use it for conversion. 5357 Note that once it chooses to use vpp, it's going to use vpp 5358 until the session is finished. 5359 https://bugzilla.gnome.org/show_bug.cgi?id=759533 5360 53612017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com> 5362 5363 * gst-libs/gst/vaapi/gstvaapiwindow.c: 5364 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 5365 libs: window: add gst_vaapi_window_vpp_convert_internal() 5366 If a backend doesn't support specific format, we can use vpp for conversion 5367 and make it playing. 5368 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow, 5369 so that GstVaapiWindowX11 could use it. 5370 https://bugzilla.gnome.org/show_bug.cgi?id=759533 5371 53722017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com> 5373 5374 * gst-libs/gst/vaapi/gstvaapiwindow.c: 5375 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 5376 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5377 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 5378 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 5379 libs: window: x11/wayland: chaining up to GstVaapiWindow 5380 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow. 5381 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow. 5382 https://bugzilla.gnome.org/show_bug.cgi?id=759533 5383 53842017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com> 5385 5386 * gst/vaapi/gstvaapipluginutil.c: 5387 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines 5388 When these definitions are false, they are undef in the 5389 preprocessor, not a defined value of 0. When they are unset the 5390 compile fails with: 5391 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function) 5392 https://bugzilla.gnome.org/show_bug.cgi?id=780948 5393 53942017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com> 5395 5396 * common: 5397 Automatic update of common submodule 5398 From 39ac2f5 to 60aeef6 5399 5400=== release 1.11.90 === 5401 54022017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com> 5403 5404 * ChangeLog: 5405 * NEWS: 5406 * configure.ac: 5407 * gstreamer-vaapi.doap: 5408 * meson.build: 5409 Release 1.11.90 5410 54112017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5412 5413 * gst/vaapi/gstvaapiencode_h265.c: 5414 vaapiencode: h265: add main-10 in caps template 5415 This patch adds h265's main-10 profile in encoder src caps template. 5416 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5417 54182017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5419 5420 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5421 libs: encoder: h265: chroma and luma with format 5422 If the profile is main-10 the bit_depth_luma_minus8, in the sequence 5423 parameter buffer, shall be the color format bit depth minus 8, 10-8 5424 which is 2. Also for bit_depth_chroma_minus8. 5425 This patch gets the negotiated sink caps format and queries its 5426 luma's depth and uses that value to fill the mentioned parameters. 5427 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5428 54292017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5430 5431 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5432 libs: encoder: admit YUV420_10BPP as valid chroma 5433 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma 5434 type. 5435 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5436 54372017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5438 5439 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5440 libs: encoder: h265: ensures profile given format 5441 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the 5442 configured color format is P010_10LE. 5443 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN 5444 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5445 54462017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5447 5448 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5449 libs: encode: merge all possible surface formats 5450 When the function gst_vaapi_encoder_get_surface_formats() was added 5451 it was under the assumption that any VA profile of the specific codec 5452 supported the same format colors. But it is not, for example the 5453 profiles that support 10bit formats. 5454 In other words, different VA profiles of a same codec may support 5455 different color formats in their upload surfaces. 5456 In order to expose all the possible color formats, if no profile is 5457 specified via source caps, or if the encoder doesn't have yet a 5458 context, all the possible VA profiles for the specific codec are 5459 iterated and their color formats are merged. 5460 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5461 54622017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5463 5464 * gst/vaapi/gstvaapiencode.c: 5465 * gst/vaapi/gstvaapiencode.h: 5466 * gst/vaapi/gstvaapiencode_h264.c: 5467 * gst/vaapi/gstvaapiencode_h265.c: 5468 vaapiencode: add get_profile() vmethod 5469 This new virtual method, get_profile(), if implemented by specific 5470 encoders, will return the VA profile potentially determined by the 5471 source caps. 5472 Also it is implemented by h264 and h265 encoders, which are the main 5473 users of this vmethod. 5474 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5475 54762017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5477 5478 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5479 * gst-libs/gst/vaapi/gstvaapiencoder.h: 5480 * gst/vaapi/gstvaapiencode.c: 5481 libs: encoder: pass profile to get_surface_formats() 5482 In order to get the supported surface formats within a specific 5483 profile this patch adds the GstVaapiProfile as property to 5484 gst_vaapi_encoder_get_surface_formats(). 5485 Currently the extracted formats are only those related with the 5486 default profile of the element's codec. 5487 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5488 54892017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5490 5491 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5492 libs: encoder: dummy context for get_surface_formats() 5493 Instead of creating (if it doesn't exist, yet) the encoder's context 5494 the method gst_vaapi_encoder_get_surface_formats() now it creates 5495 dummy contexts, unless the encoder has it already created. 5496 The purpose of this is to avoid setting a encoder's context with a 5497 wrong profile. 5498 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5499 55002017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5501 5502 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5503 libs: encoder: refactor init_context_info() 5504 In order to generate vaapi contexts iterative, the function 5505 init_context_info() is refactored to pass, as parameters the 5506 GstVaapiContextInfo and the GstVaapiProfile. 5507 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5508 55092017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5510 5511 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5512 * gst-libs/gst/vaapi/gstvaapiutils.c: 5513 * gst-libs/gst/vaapi/gstvaapiutils.h: 5514 libs: encoder: initialize chroma_type 5515 Instead of initialize the chroma_type with a undefined value, which 5516 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext, 5517 this patch queries the VA config, given the received 5518 GstVaapiContextInfo's parameters, and gets the first response. 5519 In order to get the GstVaapiChromaType value, also it was needed to 5520 add a new utility function: to_GstVaapiChromaType(), which, given a 5521 VA_RT_FORMAT_* will return the associated GstVaapiChromaType. 5522 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5523 55242017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5525 5526 * gst/vaapi/gstvaapiencode.c: 5527 vaapiencode: enhance logs of negotiated caps 5528 https://bugzilla.gnome.org/show_bug.cgi?id=771291 5529 55302017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com> 5531 5532 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 5533 libs: encoder: vp9: Fix initialization of ref_list 5534 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init: 5535 'memset' used with length equal to number of elements without 5536 multiplication by element size [-Werror=memset-elt-size] 5537 https://bugzilla.gnome.org/show_bug.cgi?id=780947 5538 55392017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 5540 5541 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 5542 encoder: h264: Fix Backward ReferencePicture flag setting 5543 This is a regression introduced by e829b62 which 5544 override the reference flags and caused issues with 5545 latest intel-vaapi-driver. 5546 55472017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5548 5549 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5550 libs: encoder: h265: fix code style 5551 Trivial patch to remove a double ';' as end of instruction. 5552 55532017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 5554 5555 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 5556 encoder: h264: Fix B frame encoding artifacts 5557 The current implementation is updating the POC values only 5558 in Slice parameter Buffer.But we are not filling the 5559 picture order count and reference flags in VAPictureH264 5560 while populating VA Picture/Slice structures.The latest 5561 intel-vaapi-driver is directly accessing the above fields 5562 from VAPicutreH264 provided as RefPicLists, which resulted 5563 some wrong maths and prediction errors in driver. 5564 https://bugzilla.gnome.org/show_bug.cgi?id=780620 5565 55662017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5567 5568 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5569 libs: encoder: h265: remove unused macro definition 5570 Since the h265 encoder doesn't use GValueArray, there is no need to 5571 disable the Glib deprecation warnings, thus removing the macro 5572 definition. 5573 55742017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 5575 5576 * gst/vaapi/gstvaapidecode.c: 5577 * gst/vaapi/gstvaapiencode.c: 5578 * gst/vaapi/gstvaapipostproc.c: 5579 * gst/vaapi/gstvaapisink.c: 5580 plugins: when debug disabled, default category is NULL 5581 As in gstreamer-vaapi a common base class is used, the specific 5582 default category is passed to the base-plugin initializator, thus 5583 the log messages are categorized with the used plugin. 5584 Nonetheless, when the gst-debug is disabled in compilation time, 5585 it is needed to pass NULL to the base-plugin initializator. This 5586 patch does that. 5587 https://bugzilla.gnome.org/show_bug.cgi?id=780302 5588 55892017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com> 5590 5591 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 5592 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5593 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c: 5594 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h: 5595 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit() 5596 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL 5597 unit length and data to a bitwriter. 5598 Note that this helper function applies EPB (Emulation Prevention 5599 Bytes), since otherwise produced codec_data might be broken when 5600 decoder/parser considering EPB, starts parsing. 5601 See sections 7.3 and 7.4 of the H264 and H264 specifications, which 5602 describes the emulation_prevention_three_byte. 5603 https://bugzilla.gnome.org/show_bug.cgi?id=778750 5604 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5605 56062017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com> 5607 5608 * gst-libs/gst/vaapi/Makefile.am: 5609 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 5610 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5611 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c: 5612 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h: 5613 * gst-libs/gst/vaapi/meson.build: 5614 libs: utils: h26x: create vaapiutils_h26x 5615 Since there is duplicated code in h264/265 encoder, we could 5616 refactor it to avoid duplicated code. 5617 https://bugzilla.gnome.org/show_bug.cgi?id=778750 5618 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5619 56202017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com> 5621 5622 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 5623 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5624 libs: encoder: h264/5: fix wrong return value 5625 https://bugzilla.gnome.org/show_bug.cgi?id=778750 5626 56272017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com> 5628 5629 * gst/vaapi/gstvaapiencode_h264.c: 5630 * gst/vaapi/gstvaapiencode_h265.c: 5631 docs: h264/h265: put parser to the example pipeline 5632 https://bugzilla.gnome.org/show_bug.cgi?id=778749 5633 56342017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com> 5635 5636 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5637 libs: encoder: h265: fix reserved length of bits 5638 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8 5639 https://bugzilla.gnome.org/show_bug.cgi?id=778749 5640 56412017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 5642 5643 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 5644 * tests/test-display.c: 5645 O_CLOEXEC needs _GNU_SOURCE defined 5646 From man open(2): 5647 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified 5648 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc 5649 2.12, one can obtain their definitions by defining either 5650 _POSIX_C_SOURCE with a value greater than or equal to 200809L or 5651 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc 5652 2.11 and earlier, one obtains the definitions by defining 5653 _GNU_SOURCE. 5654 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if 5655 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of 5656 gstreamer-vaapi with the uClibc C library. 5657 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 5658 https://bugzilla.gnome.org/show_bug.cgi?id=779953 5659 56602017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5661 5662 * README: 5663 README: fix "Sources" section 5664 Update the URL where the release source tarballs can be downloaded. 5665 56662017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 5667 5668 * README: 5669 README: fix "Reporting bugs" section 5670 The "Reporting bugs" section gives 5671 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the 5672 link to report a bug, but this link says "Sorry, entering a bug into the 5673 product gstreamer-vaapi has been disabled.". 5674 This commit fixes the URL to point to the proper location, and also 5675 removes the following paragraph that is no longer correct. 5676 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 5677 https://bugzilla.gnome.org/show_bug.cgi?id=779954 5678 56792017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5680 5681 * gst/vaapi/gstvaapipluginutil.c: 5682 plugins: retry to create the VA display 5683 Particularly in GNOME Wayland, the negotiated or created GL context 5684 defines a GLX environment, but VAAPI fails to create a GLX VA 5685 display because there is no a DRI2 connection. 5686 This patch retries to create the VA display if VA cannot create one 5687 with the GL context parameters. Now using the old list of display 5688 types. 5689 This should also work in the case of systems with two GPU, when the 5690 non-VAAPI has the graphics environment, and the VAAPI-enabled one 5691 shall work headless. 5692 https://bugzilla.gnome.org/show_bug.cgi?id=772838 5693 56942016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com> 5695 5696 * gst/vaapi/gstvaapipostproc.c: 5697 vaapipostproc: texture upload if driver supports GL 5698 Removes GstVideoGLTextureUploadMeta caps feature if the driver 5699 doesn't support opengl. 5700 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5701 https://bugzilla.gnome.org/show_bug.cgi?id=772838 5702 57032016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5704 5705 * gst/vaapi/gstvaapidecode.c: 5706 vaapidecode: texture upload if driver supports GL 5707 When the allowed source pad caps are generated, the GLTextureUpload caps are 5708 only inserted if the driver support OpenGL. 5709 https://bugzilla.gnome.org/show_bug.cgi?id=772838 5710 57112017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 5712 5713 * configure.ac: 5714 configure: Add missing compiler flags 5715 The AC_CHECK_HEADERS macro was failing to locate some headers, in 5716 particular the va_enc_* headers due to missing compiler flags. 5717 https://bugzilla.gnome.org/show_bug.cgi?id=779101 5718 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5719 57202017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com> 5721 5722 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 5723 libs: window: wayland: handle more VAStatus to use vpp 5724 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55, 5725 we should consider more returned VAStatus to use vpp. 5726 https://bugzilla.gnome.org/show_bug.cgi?id=779400 5727 57282017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com> 5729 5730 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5731 libs: encoder: ensure profile when context initialization 5732 We can't be sure that encoder's profile is assgined already or not 5733 at context initialization. 5734 https://bugzilla.gnome.org/show_bug.cgi?id=779120 5735 57362017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com> 5737 5738 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5739 libs: encoder: set rate control info only when query succeed 5740 Currently, it set rate control information even when query fails. 5741 In addition, it doesn't update any more since the flag 5742 got_rate_control_mask is set to TRUE. 5743 https://bugzilla.gnome.org/show_bug.cgi?id=779120 5744 57452017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com> 5746 5747 * meson.build: 5748 meson: Update version 5749 57502017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com> 5751 5752 * configure.ac: 5753 Back to development 5754 5755=== release 1.11.2 === 5756 57572017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com> 5758 5759 * ChangeLog: 5760 * NEWS: 5761 * configure.ac: 5762 * gstreamer-vaapi.doap: 5763 Release 1.11.2 5764 57652017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5766 5767 * gst/vaapi/gstvaapiencode.c: 5768 vaapiencode: merge tags for downstream's info 5769 Add encoder and codec name and the bitrate into the output for 5770 informational purposes. Some muxers or application use it as 5771 media metadata. 5772 https://bugzilla.gnome.org/show_bug.cgi?id=778781 5773 57742017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5775 5776 * gst-libs/gst/vaapi/gstvaapiencoder.c: 5777 libs: encoder: caps can change at any time 5778 The encoder should be able to change its caps even it is already 5779 processing a stream. 5780 This is suppose to happen after a flush so the codedbuf_queue should 5781 be empty. 5782 https://bugzilla.gnome.org/show_bug.cgi?id=775490 5783 57842017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5785 5786 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 5787 libs: encoder: h265: bail if nal unit type fails 5788 Bail out if the NAL unit type is not recognized. 5789 https://bugzilla.gnome.org/show_bug.cgi?id=778782 5790 57912017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5792 5793 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 5794 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 5795 libs: decoder: h264,h265 avoid uninitialized variable 5796 Configuring GCC to verify possible usage of uninitialized variables, 5797 shows that found_index might be used without previous assignation. 5798 This patch assigns a initial value to found_index, also avoid a 5799 branching when returning the result value. 5800 https://bugzilla.gnome.org/show_bug.cgi?id=778782 5801 58022017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com> 5803 5804 * configure.ac: 5805 * gst-libs/gst/vaapi/Makefile.am: 5806 * gst/vaapi/gstvaapidecode.c: 5807 * gst/vaapi/gstvaapidecodebin.c: 5808 build: rename USE_HEVC_DECODER to USE_H265_DECODER 5809 Rename to be consistent with H.264 and also H.265 encoder. The 5810 meson build assumed this was already consistently named, and so 5811 previously was not able to actually build the H.265 decoder. 5812 https://bugzilla.gnome.org/show_bug.cgi?id=778576 5813 58142017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com> 5815 5816 * meson.build: 5817 meson: gstreamer-codecparsers is a required dep 5818 Just like in configure.ac. 5819 58202017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com> 5821 5822 * Makefile.am: 5823 meson: dist meson build files 5824 Ship meson build files in tarballs, so people who use tarballs 5825 in their builds can start playing with meson already. 5826 58272017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com> 5828 5829 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 5830 libs: encoder: vp8: add CBR encoding mode 5831 This patch enables the Constant BitRate encoding mode in VP8 encoder. 5832 Basically it adds the configuration parameters required by libva to 5833 CBR enconding. 5834 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5835 https://bugzilla.gnome.org/show_bug.cgi?id=749950 5836 58372017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com> 5838 5839 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 5840 libs: encoder: vp8: fix bitrate calculation 5841 Base encoder's unit of bitrate is in Kbps. We should honor it so 5842 we use the value of bitrate in VA, in which is expressed in bps. 5843 https://bugzilla.gnome.org/show_bug.cgi?id=749950 5844 58452017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5846 5847 * gst/vaapi/gstvaapipluginbase.c: 5848 plugins: fix build when gcc 5849 In commit a8e482f9 we added a function without parameters, but gcc 5850 doesn't like that. 5851 58522017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com> 5853 5854 * gst-libs/gst/base/meson.build: 5855 * gst-libs/gst/meson.build: 5856 * gst-libs/gst/vaapi/meson.build: 5857 * gst-libs/meson.build: 5858 * gst/meson.build: 5859 * gst/vaapi/meson.build: 5860 * meson.build: 5861 * meson_options.txt: 5862 vaapi: add meson build 5863 https://bugzilla.gnome.org/show_bug.cgi?id=778250 5864 58652017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com> 5866 5867 * configure.ac: 5868 * gst-libs/gst/vaapi/Makefile.am: 5869 * gst-libs/gst/vaapi/gstvaapidisplay.c: 5870 * gst-libs/gst/vaapi/gstvaapiversion.h.in: 5871 make: remove gstvaapiversion.h generation 5872 https://bugzilla.gnome.org/show_bug.cgi?id=778250 5873 58742016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com> 5875 5876 * gst/vaapi/gstvaapipluginbase.c: 5877 plugins: use linear storage if not the same device 5878 When dmabuf is negotiated downstream and decoding and rendering are 5879 not done on the same device, the layout has to be linear in order for 5880 the memory to be shared accross devices, since each device has its 5881 own way to do tiling. 5882 Right now this code is rather just a to-do comment, since we are not 5883 fetching the device ids. 5884 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5885 58862017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com> 5887 5888 * gst-libs/gst/vaapi/gstvaapiutils.c: 5889 libs: utils: add HEVC profiles representation 5890 https://bugzilla.gnome.org/show_bug.cgi?id=778318 5891 58922017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com> 5893 5894 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 5895 libs: decoder: h264: reduce frame number of gaps 5896 Reduce frame num gaps so that we don't have to create unnecessary 5897 dummy pictures, just throw them away. 5898 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5899 https://bugzilla.gnome.org/show_bug.cgi?id=777506 5900 59012016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5902 5903 * gst/vaapi/gstvaapidecode.c: 5904 vaapidecode: don't GLTextureUpload if dmabuf 5905 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render 5906 element can handle dmabuf-based buffers, avoiding its negotiation. 5907 59082016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com> 5909 5910 * gst/vaapi/gstvaapidecode.c: 5911 vaapidecode: make pool to export decoder's surface 5912 Use new -base API gst_video_decoder_allocate_output_frame_full() to 5913 pass the current proxy/surface to the pool. 5914 The pool will will export thins given surface instead of exporting a 5915 brand new surface that will never be filled in with meaningfull data. 5916 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5917 59182017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5919 5920 * gst/vaapi/gstvaapipluginbase.c: 5921 plugins: decoder can negotiate dmabuf downstream 5922 59232016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com> 5924 5925 * gst/vaapi/gstvaapivideobufferpool.c: 5926 vaapivideobufferpool: override acquire_buffer() 5927 Overriding the vmethod acquire_buffer() it is possible to attach the 5928 right GstMemory to the current acquired buffer. 5929 As a matter of fact, this acquired buffer may contain any instantiated 5930 GstFdmemory, since this buffer have been popped out from the buffer 5931 pool, which is a FIFO queue. So there is no garantee that this buffer 5932 matches with the current processed surface. Evenmore, the VA driver 5933 might not use a FIFO queue. Therefore, it is no way to guess on the 5934 ordering. 5935 In short, acquire_buffer on the VA driver and on the buffer pool return 5936 none matching data, we have to manually attach the right GstFdMemory to 5937 the acquired GstBuffer. The right GstMemory is the one associated with 5938 the current surface. 5939 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5940 59412016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com> 5942 5943 * gst/vaapi/gstvaapivideobufferpool.c: 5944 * gst/vaapi/gstvaapivideomemory.c: 5945 vaapivideomemory: export surface if it is provided 5946 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it 5947 had to create that surface. Now it can also export an already provided 5948 surface. It is useful to export decoder's surfaces (from VA context). 5949 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5950 59512016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com> 5952 5953 * gst/vaapi/gstvaapivideobufferpool.h: 5954 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams 5955 Useful to let the pool know the current surface proxy when calling 5956 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer() 5957 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5958 59592016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com> 5960 5961 * gst-libs/gst/vaapi/gstvaapisurface.c: 5962 * gst-libs/gst/vaapi/gstvaapisurface.h: 5963 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy() 5964 These functions are useful when a dmabuf-based memory is instantiated in 5965 order to relate the generated buffer @proxy with the processed @surface. 5966 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5967 59682016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com> 5969 5970 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 5971 * gst-libs/gst/vaapi/gstvaapibufferproxy.h: 5972 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h: 5973 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem() 5974 This patch adds a GstMemory as a variable member of the buffer proxy, 5975 because we will need to associate the buffer proxy with the memory 5976 which exposes it. Later, we will know which memory, in the video buffer 5977 pool, is attached to the processed surface. 5978 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5979 59802016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com> 5981 5982 * gst/vaapi/gstvaapipostproc.c: 5983 vaapipostproc: don't GLTextureUpload if dmabuf 5984 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render 5985 element can handle dmabuf-based buffers, avoiding its negotiation. 5986 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta 5987 feature if can dmabuf" 5988 https://bugzilla.gnome.org/show_bug.cgi?id=755072 5989 59902016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 5991 5992 * gst/vaapi/gstvaapipluginbase.c: 5993 plugins: enable DMAbuf allocator to downstream 5994 If the negotiated caps are raw caps and downstream supports the 5995 EGL_EXT_image_dma_buf_import extension, then the created allocator 5996 is the DMAbuf, configured to downstream. 5997 At this moment, the only element which can push dmabuf-based buffers 5998 to downstream, is vaapipostproc. 5999 60002016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6001 6002 * gst/vaapi/gstvaapipluginbase.c: 6003 * gst/vaapi/gstvaapipluginbase.h: 6004 plugins: check if negotiate dmabuf with downstream 6005 In order to enable, in the future, dmabuf-based buffers, the vaapi base 6006 plugin needs to check if downstream can import dmabuf buffers. 6007 This patch checks if downstream can handle dmabuf, by introspecting the 6008 shared GL context. If the GL context is EGL/GLES2 and have the extension 6009 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated. 6010 Original-patch-by: Julien Isorce <j.isorce@samsung.com> 6011 60122016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com> 6013 6014 * gst/vaapi/gstvaapivideomemory.c: 6015 vaapivideomemory: release proxy's data if downstream 6016 The surface created for downstream is going to be filled by VAAPI 6017 elements. So, the driver needs write access on that surface. 6018 This patch releases the derived image held by the proxy, thus the 6019 surface is unmarked as busy. 6020 This is how it has to be done as discussed on libva mailing list. 6021 https://bugzilla.gnome.org/show_bug.cgi?id=755072 6022 60232016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com> 6024 6025 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 6026 * gst-libs/gst/vaapi/gstvaapibufferproxy.h: 6027 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data() 6028 Adds an API to request the user's data release in the buffer proxy. 6029 https://bugzilla.gnome.org/show_bug.cgi?id=755072 6030 60312016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com> 6032 6033 * gst/vaapi/gstvaapipluginbase.c: 6034 * gst/vaapi/gstvaapivideomemory.c: 6035 * gst/vaapi/gstvaapivideomemory.h: 6036 vaapivideomemory: add direction to dmabuf allocator 6037 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus 6038 we later could do different thing when the allocated memory is for 6039 upstream or dowstream, as required by VA-API. 6040 https://bugzilla.gnome.org/show_bug.cgi?id=755072 6041 60422016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com> 6043 6044 * gst-libs/gst/vaapi/gstvaapiutils_core.c: 6045 libs: utils: return NULL if failed to get surface formats 6046 Thus, when generating the allowed caps, the element will throw a 6047 warning and it will use its caps template. 6048 This behavior might be a bug in the VA driver. 6049 https://bugzilla.gnome.org/show_bug.cgi?id=775490 6050 60512015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6052 6053 * gst-libs/gst/vaapi/gstvaapidisplay.c: 6054 Revert "vaapidisplay: mark X11 display as compatible with EGL" 6055 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9. 6056 60572017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com> 6058 6059 * gst/vaapi/gstvaapipostproc.c: 6060 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps 6061 A value of width/height property should be set to out caps, 6062 if negotiation had been going properly. 6063 So we can use srcpad_info when making decision of scaling. 6064 https://bugzilla.gnome.org/show_bug.cgi?id=778010 6065 60662017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6067 6068 * gst/vaapi/gstvaapidecode.c: 6069 * gst/vaapi/gstvaapiencode.c: 6070 * gst/vaapi/gstvaapipluginutil.c: 6071 * gst/vaapi/gstvaapipluginutil.h: 6072 * gst/vaapi/gstvaapipostproc.c: 6073 * gst/vaapi/gstvaapisink.c: 6074 plugins: handle GL params through context query 6075 If the element instantiated the GL display and context, they should 6076 handle them too through the context query. 6077 https://bugzilla.gnome.org/show_bug.cgi?id=777409 6078 60792017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6080 6081 * gst/vaapi/gstvaapipluginbase.c: 6082 * gst/vaapi/gstvaapipluginbase.h: 6083 * gst/vaapi/gstvaapipluginutil.c: 6084 plugins: create a GL context on certain conditions 6085 If a GstVaapiDisplay is not found in the GStreamer context sharing, 6086 then VAAPI elements look for a local GstGLContext in gst context 6087 sharing mechanism ('gst.gl.local.context'). 6088 If this GstGLContext not found either then, only the VAAPI decoders 6089 and the VAAPI post-processor, will try to instantiate a new 6090 GstGLContext. 6091 If a valid GstGLContext is received, then a new GstVaapiDisplay will 6092 be instantiated with the platform, API and windowing specified by the 6093 instantiated GstGLContext. 6094 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com> 6095 https://bugzilla.gnome.org/show_bug.cgi?id=777409 6096 60972016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6098 6099 * gst/vaapi/gstvaapivideocontext.c: 6100 vaapivideocontext: context type can be rejected 6101 Instead of calling g_return_val_if_fail() to check the context type, we 6102 should use a normal conditional, since it is possible that other context types 6103 can arrive and try to be assigned. Otherwise a critical log message is 6104 printed. 6105 This happens when we use playbin3 with vaapipostproc as video-filter. 6106 https://bugzilla.gnome.org/show_bug.cgi?id=777409 6107 61082017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6109 6110 * gst/vaapi/gstvaapipostprocutil.c: 6111 vaapipostproc: use sink caps par if not requested 6112 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it 6113 is not already set. 6114 https://bugzilla.gnome.org/show_bug.cgi?id=777395 6115 61162017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6117 6118 * gst/vaapi/gstvaapipostproc.c: 6119 * gst/vaapi/gstvaapipostprocutil.c: 6120 vaapipostproc: set interlace mode 6121 if the vaapipostproc is configured to not do deinterlacing, the 6122 interlace-mode in the src caps should be the same as the input caps. 6123 https://bugzilla.gnome.org/show_bug.cgi?id=777395 6124 61252017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6126 6127 * gst/vaapi/gstvaapisink.c: 6128 vaapisink: fix gcc compiler warning 6129 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 6130 61312017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6132 6133 * gst/vaapi/gstvaapisink.c: 6134 vaapisink: don't use member variable outside lock 6135 Thus a race condition segfault is avoided. 6136 Original-patch-by: Matt Staples <staples255@gmail.com> 6137 https://bugzilla.gnome.org/show_bug.cgi?id=777146 6138 61392017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6140 6141 * gst/vaapi/gstvaapipluginbase.c: 6142 * gst/vaapi/gstvaapipostproc.c: 6143 plugins: avoid log flood when activating pool 6144 Every time a new buffer is allocated, the pool is activated. This 6145 doesn't impact in performance since gst_buffer_pool_set_active() 6146 checks the current state of the pool. Nonetheless it logs out a 6147 message if the state is the same, and it floods the logging subsystem 6148 if it is enabled. 6149 To avoid this log flooding first the pool state is checked before 6150 changing it. 6151 61522017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6153 6154 * gst-libs/gst/vaapi/gstvaapidecoder.c: 6155 * gst-libs/gst/vaapi/gstvaapidecoder.h: 6156 * gst/vaapi/gstvaapidecode.c: 6157 * gst/vaapi/gstvaapidecode.h: 6158 vaapidecode: update internal decoder sink caps 6159 When a new sink caps arrive the internal decoder state is updated 6160 and, if it is, request a downstream renegotiation. 6161 Previously, when new caps arrived the whole decoder where destroyed 6162 and recreated. Now, if the caps are compatible or has the same codec, 6163 the internal decoder is kept, but a downstream renegotiation is 6164 requested. 6165 https://bugzilla.gnome.org/show_bug.cgi?id=776979 6166 61672017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com> 6168 6169 * configure.ac: 6170 Back to development 6171 6172=== release 1.11.1 === 6173 61742017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com> 6175 6176 * ChangeLog: 6177 * NEWS: 6178 * configure.ac: 6179 * gstreamer-vaapi.doap: 6180 Release 1.11.1 6181 61822017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6183 6184 * gst-libs/gst/vaapi/gstvaapiutils.c: 6185 vaapi: bump ifdef to API 0.40.0 for log redirect 6186 vaSetInfoCallback() is not released yet. It is going to appear in 6187 VA-API 0.40.0 6188 61892017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com> 6190 6191 * gst-libs/gst/vaapi/gstvaapiutils.c: 6192 vaapiutils: Fix compilation with latest and previous libva releases 6193 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for 6194 0.39.5 instead. 6195 61962017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6197 6198 * gst-libs/gst/vaapi/gstvaapidisplay.c: 6199 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 6200 * gst-libs/gst/vaapi/gstvaapiutils.c: 6201 * gst-libs/gst/vaapi/gstvaapiutils.h: 6202 libs: display: redirect logging at initialize 6203 Redirect libva's logs to GStreamer logging mechanism. This is 6204 particularly useful when VA is initialized, because it always logs 6205 out the drivers details. 6206 In order to achieve this a new helper function was added as a wrapper 6207 for the vaInitialize() function. 6208 https://bugzilla.gnome.org/show_bug.cgi?id=777115 6209 62102017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com> 6211 6212 * gst/vaapi/gstvaapipluginbase.c: 6213 plugins: provide at least two buffers in sink pool 6214 Adds two buffers as the default value of minimum buffer. 6215 This would be used when creating and proposing vaapi bufferpool for 6216 sink pad, hence the upstream element will keep, at least, these two 6217 buffers. 6218 https://bugzilla.gnome.org/show_bug.cgi?id=775203 6219 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6220 62212017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com> 6222 6223 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 6224 libs: decoder: h264: don't update cloned attributes 6225 If the frame is a cloned picture, its PTS comes from its parent 6226 picture. In addition, the base decoder doesn't set a valid PTS to 6227 the frame corresponding to the cloned picture. 6228 https://bugzilla.gnome.org/show_bug.cgi?id=774254 6229 62302017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6231 6232 * gst/vaapi/gstvaapivideomemory.c: 6233 vaapivideomemory: check for display 6234 This patch fixes the check of display, rather than check for the 6235 meta, which it is known it exists. 6236 62372017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6238 6239 * gst/vaapi/gstvaapivideomemory.c: 6240 * gst/vaapi/gstvaapivideomemory.h: 6241 vaapivideomemory: rename dmabuf allocator parameters 6242 Rename the parameters 'vip' and 'flags' to 'alloc_info' and 6243 'surface_alloc_flags' respectively. The purpose of this change is 6244 to auto-document those parameters. 6245 Also, aligned to this patch, the local 'alloc_info' variable was 6246 renamed as 'surface_info', because it stores the possible surface's 6247 video info, not the allocate one. 6248 62492017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6250 6251 * gst/vaapi/gstvaapivideomemory.c: 6252 * gst/vaapi/gstvaapivideomemory.h: 6253 vaapivideomemory: rename vip to alloc_info parameter 6254 In order to auto-document the code, this patch renames the 'vip' 6255 parameter in the functions related to gst_vaapi_video_allocator_new () 6256 to 'alloc_info', since it declares the allocation video info from 6257 the vaapi buffer pool. 6258 62592017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6260 6261 * gst/vaapi/gstvaapivideomemory.c: 6262 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING() 6263 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get 6264 the video format string. 6265 62662017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6267 6268 * gst/vaapi/gstvaapivideomemory.c: 6269 vaapivideomemory: unroll gst_vaapi_surface_new_with_format() 6270 gst_vaapi_surface_new_with_format() is a wrapper for 6271 gst_vaapi_surface_new_full (). In this case, the former is simpler 6272 than the first. This patch changes that. 6273 62742017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com> 6275 6276 * gst/vaapi/gstvaapipostproc.c: 6277 vaapipostproc: notify if src pad caps changed 6278 If src pad caps have changed, it needs to notify it downstream. In 6279 addition, do not set passthrough if they have changed. 6280 Otherwise, transform sometimes starts processing before caps change. 6281 The passthrough value will be set in fixate later in this case. 6282 https://bugzilla.gnome.org/show_bug.cgi?id=775204 6283 62842016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6285 6286 * gst/vaapi/gstvaapidecodebin.c: 6287 vaapidecodebin: capsfilter to optimize negotiation 6288 Add a capsfilter forcing the caps 6289 "video/x-raw(memory:VASurface), format=(string)NV12" between the 6290 queue and the vaapipostproc so no renegotiation is required. 6291 https://bugzilla.gnome.org/show_bug.cgi?id=776175 6292 62932016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com> 6294 6295 * gst/vaapi/gstvaapivideomemory.c: 6296 vaapivideomemory: fail surface/image configuration 6297 To detect and handle errors during allocator_configure_surface_info() 6298 and allocator_conigure_image_info(). 6299 https://bugzilla.gnome.org/show_bug.cgi?id=776084 6300 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6301 63022016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com> 6303 6304 * gst/vaapi/gstvaapisink.c: 6305 vaapisink: ensures raw caps at start() 6306 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid 6307 race conditions at get_caps(), especially with multiple src elements. 6308 https://bugzilla.gnome.org/show_bug.cgi?id=776303 6309 63102016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6311 6312 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 6313 libs: surface: fix error handling code style 6314 63152016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6316 6317 * gst/vaapi/gstvaapivideomemory.c: 6318 vaapivideomemory: add gst_video_info_update_from_surface() 6319 With this function is possible to refactor and remove duplicated code 6320 between dmabuf configuration and direct rendering/uploading 6321 configuration. 6322 63232016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6324 6325 * gst/vaapi/gstvaapivideomemory.c: 6326 vaapivideomemory: no log object at initialization 6327 When an instance of GstVaapiVideoAllocator fails at initializing, the 6328 log message should not include the allocator's object, because it is 6329 going to be unrefed. 6330 63312016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6332 6333 * gst/vaapi/gstvaapidecode.c: 6334 vaapidecode: lock stream when setting caps 6335 63362016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6337 6338 * gst/vaapi/gstvaapidecode.c: 6339 Revert "vaapidecode: implement negotiate() vmethod" 6340 This reverts commit 3285121181295c544480fc6ba756845b16285d30. 6341 videodecode's negotiate() vmethod is also called when events arrive, 6342 but this would mean that the proper configuration of sink pad might 6343 not be complete, thus we should not update the src pad. 6344 Let's keep the old non-vmethod negotitate(). 6345 63462016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6347 6348 * gst/vaapi/gstvaapi.c: 6349 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet" 6350 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77. 6351 63522016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com> 6353 6354 * gst/vaapi/gstvaapiencode.c: 6355 * gst/vaapi/gstvaapiencode.h: 6356 vaapiencode: get surface formats in get_caps() 6357 Query for the supported surface formats in config at get_caps() vmethod. 6358 https://bugzilla.gnome.org/show_bug.cgi?id=769266 6359 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6360 63612016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com> 6362 6363 * gst-libs/gst/vaapi/gstvaapiencoder.c: 6364 * gst-libs/gst/vaapi/gstvaapiencoder.h: 6365 libs: encoder: add gst_vaapi_encoder_get_surface_formats() 6366 This method will return the valid surface formats in the current 6367 config. If the are no VAConfig it is created with the information 6368 available. 6369 https://bugzilla.gnome.org/show_bug.cgi?id=769266 6370 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6371 63722016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com> 6373 6374 * gst-libs/gst/vaapi/gstvaapiencoder.c: 6375 libs: encoder: split set_context_info() 6376 Split set_context_info() adding init_context_info() which only 6377 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder 6378 required for VAConfig. 6379 https://bugzilla.gnome.org/show_bug.cgi?id=769266 6380 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6381 63822016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com> 6383 6384 * gst-libs/gst/vaapi/gstvaapicontext.c: 6385 libs: context: skip VAContext if no frame size 6386 If GstVaapiContextInfo has just initial information, without frame's 6387 width and height, skip the creation of the VAContext, just keep the 6388 VAConfig. 6389 https://bugzilla.gnome.org/show_bug.cgi?id=769266 6390 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6391 63922016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com> 6393 6394 * gst-libs/gst/vaapi/gstvaapicontext.c: 6395 libs: context: split context_create() 6396 Split the funcion context_create() into context_create() and 6397 config_create(). 6398 Decoupling VAConfig and VAContext during context creation, we could 6399 query the VAConfig for the supported surface's formats without creating 6400 a VAContext. 6401 https://bugzilla.gnome.org/show_bug.cgi?id=769266 6402 64032016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6404 6405 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 6406 libs: drm: find render node in hybrid system 6407 Originally the drm backend only tried to open the first render node 6408 found. But in hybrid system this first render node might not support 6409 VA-API (propietary Nvidia driver, for example). 6410 This patch tries all the available nodes until a finding one with a 6411 VA-API supported driver. 6412 https://bugzilla.gnome.org/show_bug.cgi?id=774811 6413 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and 6414 Reza Razavi <reza@userful.com> 6415 64162016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6417 6418 * gst/vaapi/gstvaapivideomemory.c: 6419 vaapivideomemory: refactor code for readability 6420 Added the inlined function allocator_configure_pools() moving out code 6421 from gst_vaapi_video_allocator_new() to make clear that it is a 6422 post-initalization of the object. 6423 64242016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6425 6426 * gst/vaapi/gstvaapivideomemory.c: 6427 vaapivideomemory: log error if not VA image 6428 Log an error message if the test image for surface downloading 6429 cannot be allocated or mapped. 6430 64312016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6432 6433 * gst/vaapi/gstvaapivideomemory.c: 6434 vaapivideomemory: remove unused macros 6435 These macros are not used. Let us remove them. 6436 64372016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6438 6439 * gst/vaapi/gstvaapivideomemory.c: 6440 * gst/vaapi/gstvaapivideomemory.h: 6441 vaapivideomemory: rename video for allocation_info 6442 Since video_info stores the GstVideoInfo of the allocation caps, 6443 it is clear if we rename it as allocation_info, to distinguish it 6444 later from negotiation_info. 6445 64462016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com> 6447 6448 * gst/vaapi/gstvaapivideomemory.c: 6449 * gst/vaapi/gstvaapivideomemory.h: 6450 vaapivideomemory: add real GstVaapiDmaBufAllocator 6451 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of 6452 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's 6453 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited 6454 from GstDmaBufAllocator. 6455 https://bugzilla.gnome.org/show_bug.cgi?id=755072 6456 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6457 64582016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com> 6459 6460 * gst/vaapi/gstvaapivideomemory.c: 6461 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new() 6462 Add a helper function to initialize the gst_debug_vaapivideomemory, 6463 to use it either by the GstVaapiVideoAllocatorClass or 6464 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator). 6465 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new () 6466 https://bugzilla.gnome.org/show_bug.cgi?id=755072 6467 64682016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com> 6469 6470 * gst/vaapi/gstvaapiencode.c: 6471 vaapiencode: release internal encoder at stop() 6472 As the internal encoder is created at start(), let's release it at 6473 stop() vmethod, to be consistent. 6474 gst_vaapiencode_destroy() is called since it also resets the input and 6475 output states, which is something that the base class does internally 6476 after calling stop() vmethod. 6477 https://bugzilla.gnome.org/show_bug.cgi?id=769266 6478 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6479 64802016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com> 6481 6482 * common: 6483 Automatic update of common submodule 6484 From f49c55e to 39ac2f5 6485 64862016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com> 6487 6488 * gst/vaapi/gstvaapiencode.c: 6489 vaapiencode: call ensure_encoder() at start() 6490 Currently, specific encoder is created during set_format(). This might 6491 lead to race condition when creating profiles with multiple encoders. 6492 This patch moves ensure_encoder() call to start() vmethod to ensure 6493 avoiding the race condition. 6494 https://bugzilla.gnome.org/show_bug.cgi?id=773546 6495 64962016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6497 6498 * gst/vaapi/gstvaapidecodebin.c: 6499 vaapidecodebin: bring back dynamic configuration 6500 In commit ca0c3fd6 we remove the dynamic configuration if the bin 6501 because we assumed that the bin will be always static as it is 6502 registered. 6503 Nonetheless we were wrong, because it is possible to request, with a 6504 property, to avoid the use of the post-processor. 6505 Since we want to add a way to disable the post-processor through 6506 environment variables, this remove feature is required again. 6507 If the environment variable GST_VAAPI_DISABLE_VPP is defined the 6508 postprocessor inside of the vaapidecodebin is disabled, then 6509 vaapidecodebin is an alias of the old vaapidecode. 6510 https://bugzilla.gnome.org/show_bug.cgi?id=775041 6511 65122016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6513 6514 * gst/vaapi/gstvaapidecode.c: 6515 vaapidecode: implement negotiate() vmethod 6516 Instead of decorating the negotiate() method, let us override it, 6517 so the stream is locked while called. 6518 https://bugzilla.gnome.org/show_bug.cgi?id=775040 6519 65202016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com> 6521 6522 * .gitmodules: 6523 common: use https protocol for common submodule 6524 https://bugzilla.gnome.org/show_bug.cgi?id=775110 6525 65262016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org> 6527 6528 * gst-libs/gst/vaapi/Makefile.am: 6529 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl 6530 In case libva-wayland has its headers not installed in default 6531 locations (like /usr/include), the build fails to include "wayland-client.h": 6532 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo 6533 In file included from gstvaapidisplay_wayland.h:27:0, 6534 from gstvaapidisplay_egl.c:35: 6535 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory 6536 #include <wayland-client.h> 6537 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is 6538 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query 6539 for libva-wayland.pc in configure and use this in other places as well. It is thus only 6540 correct and consequent, to do it also at this spot. 6541 https://bugzilla.gnome.org/show_bug.cgi?id=773946 6542 65432015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6544 6545 * gst/vaapi/gstvaapivideocontext.c: 6546 vaapivideocontext: log a message if no bus 6547 Raise a warning if there is no bus when the element tries to post a 6548 message. 6549 65502015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6551 6552 * gst/vaapi/gstvaapisink.c: 6553 vaapisink: create display at open() 6554 Instead of creating the VA display before setting the bus to the 6555 element, it is created when the element is opened. 6556 Basically, this commit is a revert of 6557 5e5d62cac79754ba60057fc2516135aad8d7de35 6558 That was done when the GStreamer's context sharing was not mature 6559 enough as now. There is no reason to keep this hack. 6560 65612016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6562 6563 * gst/vaapi/gstvaapidecode.c: 6564 vaapidecode: don't add video crop meta 6565 Since the differentiation of negotiation caps and allocation caps, 6566 there is no need to add a video crop meta with the negotiation caps. 6567 Hence, removing it. 6568 https://bugzilla.gnome.org/show_bug.cgi?id=773948 6569 65702015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 6571 6572 * gst/vaapi/gstvaapivideobuffer.c: 6573 * gst/vaapi/gstvaapivideometa.c: 6574 * gst/vaapi/gstvaapivideometa.h: 6575 remove the video converter from vaapi buffer meta 6576 Since all the video converter were deprecated in gstreamer-1.2, we don't need 6577 to handle them anymore in the vaapi's buffer meta. 6578 This patch removes its usage and the buffer meta's API for that. 6579 https://bugzilla.gnome.org/show_bug.cgi?id=745728 6580 65812016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6582 6583 * gst/vaapi/gstvaapipluginbase.c: 6584 plugins: destroy source pad allocator and pool 6585 First, deactivate source pad pool when the out caps change, and if so, 6586 destroy texture map, the source pad allocator and pool only if the 6587 new caps are different from the ones already set. 6588 65892016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6590 6591 * gst/vaapi/gstvaapipluginbase.c: 6592 plugins: don't destroy sink pad allocator 6593 Don't destroy sink pad allocator at _set_caps() because it will be done at 6594 ensure_sinkpad_buffer_pool() if it is required. 6595 65962016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6597 6598 * gst/vaapi/gstvaapipluginbase.c: 6599 plugins: first validate the out caps 6600 When calling _set_caps() first validate the out caps before doing 6601 anything else. 6602 66032016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6604 6605 * gst/vaapi/gstvaapidecode.c: 6606 vaapidecode: negotiate after destroying allocator 6607 This is related with bug 758907 when no vaapipostproc is used (no 6608 vaapidecodebin). In order to negotiate downstream we need to destroy 6609 the source pad allocator, otherwise the same allocated buffers are 6610 used, failing the mapping. 6611 66122016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6613 6614 * gst/vaapi/gstvaapivideomemory.c: 6615 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO 6616 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of 6617 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type 6618 was created. 6619 https://bugzilla.gnome.org/show_bug.cgi?id=774782 6620 66212016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6622 6623 * gst/vaapi/gstvaapipluginbase.c: 6624 plugins: update the src pad allocator video info 6625 Update the size, stride and offset of the source pad allocator video 6626 info, so the pool could set the correct GstVideoMeta 6627 https://bugzilla.gnome.org/show_bug.cgi?id=774782 6628 66292016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6630 6631 * gst/vaapi/gstvaapivideomemory.c: 6632 vaapivideomemory: add missing documentation 6633 https://bugzilla.gnome.org/show_bug.cgi?id=774782 6634 66352016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6636 6637 * gst/vaapi/gstvaapipluginbase.c: 6638 plugins: use early return without goto 6639 https://bugzilla.gnome.org/show_bug.cgi?id=774782 6640 66412016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6642 6643 * gst/vaapi/gstvaapipluginbase.c: 6644 * gst/vaapi/gstvaapivideomemory.c: 6645 * gst/vaapi/gstvaapivideomemory.h: 6646 plugins: add allocator to allocation query 6647 This patch adds the created allocator to the allocation query either 6648 in decide_allocation() and propose_allocation() vmehtods. 6649 With it, there's no need to set the modified allocator's size in the 6650 pool configuration. 6651 https://bugzilla.gnome.org/show_bug.cgi?id=774782 6652 66532016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com> 6654 6655 * gst/vaapi/gstvaapivideobufferpool.c: 6656 vaapivideobufferpool: set correct buffer size 6657 We should set the correct buffer size when we are configuring the pool, 6658 otherwise the buffer will be discarded when it returns to the pool. 6659 Indeed when the ref-count of a buffer reaches zero, its pool will queue 6660 it back (and ref it) if, and only if, the buffer size matches the 6661 configured buffer size on the pool. 6662 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c 6663 https://bugzilla.gnome.org/show_bug.cgi?id=774782 6664 66652016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6666 6667 * gst/vaapi/gstvaapivideomemory.c: 6668 vaapivideomemory: check for memory allocator 6669 When calling gst_vaapi_video_memory_copy() the allocator of the memory 6670 to copy should be allocated by the vaapi allocator. 6671 This patch does this verification. 6672 66732016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6674 6675 * gst/vaapi/gstvaapivideomemory.c: 6676 vaapivideomemory: code style fixes 6677 A cosmetic commit for enhance readability of the casts and method 6678 preconditions. 6679 66802016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6681 6682 * gst/vaapi/gstvaapivideomemory.c: 6683 vaapivideomemory: unroll gst_vaapi_video_allocator_free() 6684 Instead of having a gst_vaapi_video_memory_free() that is only going to 6685 be called by gst_vaapi_video_allocator_free(), let's just remove the first 6686 and merged into the second. 6687 66882016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6689 6690 * gst/vaapi/gstvaapivideomemory.c: 6691 vaapivideomemory: avoid virtual methods casting 6692 Use the expected virtual method signatures for readability. 6693 66942016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6695 6696 * gst/vaapi/gstvaapivideomemory.c: 6697 vaapivideomemory: remove unimplemented methods 6698 Remove unimplemented method for allocator mem_share() and mem_is_span(). 6699 67002016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6701 6702 * gst/vaapi/gstvaapivideomemory.c: 6703 vaapivideomemory: fail if frame map can't get plane 6704 If map() vmethod in GstVideMeta cannot get the plane data, return false, 6705 thus the caller will not try to read invalid memory. 6706 https://bugzilla.gnome.org/show_bug.cgi?id=774213 6707 67082016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6709 6710 * gst/vaapi/gstvaapivideomemory.c: 6711 * gst/vaapi/gstvaapivideomemory.h: 6712 vaapivideomemory: lock map and unmap operations 6713 In order to avoid race condition when two threads call map/unmap the same 6714 VA surface, this patch mutex these operations. 6715 https://bugzilla.gnome.org/show_bug.cgi?id=774213 6716 67172016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6718 6719 * gst/vaapi/gstvaapivideomemory.c: 6720 vaapivideomemory: refactor vaapi memory unmapping 6721 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and 6722 gst_vaapi_video_memory_unmap() when unmapping. 6723 This patch refactors both methods adding the common function 6724 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it 6725 is correctly reset. 6726 Additionally, only when mapping flag has the WRITE bit, it set the image as 6727 current, which was done in gst_video_meta_map_vaapi_memory() but no in 6728 gst_vaapi_video_memory_map(). 6729 In order to make this, the mapping flags were required, so instead of 6730 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded. 6731 https://bugzilla.gnome.org/show_bug.cgi?id=774213 6732 67332016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6734 6735 * gst/vaapi/gstvaapivideomemory.c: 6736 vaapivideomemory: refactor vaapi memory mapping 6737 There were duplicated code in gst_video_meta_map_vaapi_memory() and 6738 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping. 6739 This patch refactors both methods adding the common function 6740 map_vaapi_memory(). 6741 Additionally, only when flag has the READ bit it calls 6742 ensure_images_is_current(), which was done in 6743 gst_video_meta_map_vaapi_memory() but no in 6744 gst_vaapi_video_memory_map(). 6745 https://bugzilla.gnome.org/show_bug.cgi?id=772151 6746 67472016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6748 6749 * gst/vaapi/gstvaapidecode.c: 6750 vaapidecode: unref allowed_sinkpad_caps at close() 6751 The variable member allowed_sinkpad_caps is constructed querying the 6752 current VA display. Bearing that in mind, the variable shall be freed 6753 when the VA display changes or is removed. 6754 This patch moves the freeing of allowed_sinkpad_caps to close(), when 6755 the VA display is freed. 6756 67572016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com> 6758 6759 * gst/vaapi/gstvaapisink.c: 6760 vaapisink: finish event thread at stop() 6761 The thread that handles window's events should be finished during 6762 pipeline's shutdown, otherwise it will remain alive during pipeline 6763 re-activation, leading to unexpected problems. 6764 This patch fixes failures of intensive_state_change scenario of 6765 gst-validate 6766 https://bugzilla.gnome.org/show_bug.cgi?id=774241 6767 67682016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6769 6770 * gst/vaapi/gstvaapipostproc.c: 6771 vaapipostproc: enhance debug message 6772 "gst_pad_push" is not a good description of the event. 6773 67742016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com> 6775 6776 * gst/vaapi/gstvaapipostproc.c: 6777 postproc: honor gst_pad_push() return value 6778 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to 6779 deadlock during seek. 6780 This patch returns the same error of gst_pad_push() and log out the 6781 return value. 6782 https://bugzilla.gnome.org/show_bug.cgi?id=774030 6783 67842016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6785 6786 * gst/vaapi/gstvaapidecode.c: 6787 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS 6788 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is 6789 compiled with out EGL/GLX support: it shall not support 6790 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS. 6791 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the 6792 allowed src caps for vaapedecode if EGL/GLX. 6793 67942016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6795 6796 * gst/vaapi/gstvaapivideomemory.c: 6797 vaapivideomemory: increment map counter only if succeeded 6798 Previously the frame map counter increased independently if the map succeeded 6799 or not. This leaded to critical messages and crashes if the frame was unable 6800 to be mapped, but the counter increased. 6801 This patch increases the map counter only if the map operation occurred. 6802 https://bugzilla.gnome.org/show_bug.cgi?id=773939 6803 68042016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6805 6806 * gst/vaapi/gstvaapipluginbase.c: 6807 plugins: set negotiation caps in src allocator 6808 When the allocator is created, it stores the allocation caps. But sometimes 6809 the "allocation caps" may be different from the "negotiation caps". 6810 In this case, the allocator should store the negotiation caps since they 6811 are the ones used for frame mapping with GstVideoMeta. 6812 When vaapispostproc is used, this is not a problem since the element is assume 6813 to resize. But when using a vaapi decoder only, with a software renderer, it 6814 fails in this case. 6815 https://bugzilla.gnome.org/show_bug.cgi?id=773323 6816 68172016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6818 6819 * gst/vaapi/gstvaapidecode.c: 6820 * gst/vaapi/gstvaapidecode.h: 6821 vaapidecode: generate source pad caps 6822 Just as vaapipostproc, VA decoder's context can be queried to get the possible 6823 raw formats, so, the src caps can negotiate the exact caps that the context 6824 supports. 6825 68262016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6827 6828 * gst-libs/gst/vaapi/gstvaapidecoder.c: 6829 * gst-libs/gst/vaapi/gstvaapidecoder.h: 6830 libs: decoder: add _get_surface_formats() 6831 This function exposes the available formats of the surfaces in the the current 6832 context to the plugins. 6833 68342016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6835 6836 * gst-libs/gst/vaapi/gstvaapicontext.c: 6837 * gst-libs/gst/vaapi/gstvaapicontext.h: 6838 libs: context: ensure context formats 6839 This patch ensures to get the formats, as filter does, available in the 6840 decoder / encoder context. 6841 The context fills up the array as soon it is created, otherwise the pipeline 6842 could get stalled (perhaps this is a bug in my HSW backend). 6843 https://bugzilla.gnome.org/show_bug.cgi?id=752958 6844 68452016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6846 6847 * gst-libs/gst/vaapi/gstvaapifilter.c: 6848 * gst-libs/gst/vaapi/gstvaapiutils_core.c: 6849 * gst-libs/gst/vaapi/gstvaapiutils_core.h: 6850 libs: move get_surface_formats to utils_core 6851 The query of all the supported formats for a VA config were only used by the 6852 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to 6853 negotiate a suitable raw format with downstream, we need to query these 6854 formats against the decoder's config. 6855 This patch is the first step: moves the code in filter's ensure_image() to a 6856 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be 6857 shared later by the decoder. 6858 https://bugzilla.gnome.org/show_bug.cgi?id=752958 6859 68602016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6861 6862 * gst/vaapi/gstvaapipluginbase.c: 6863 plugins: remove set_sinkpad_dmabuf_allocator() 6864 Since when the sink pad allocator is created, it is decided if the required 6865 one is vaapi allocator or dmabuf allocator, there is no need to force its set 6866 again. 6867 68682016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6869 6870 * gst/vaapi/gstvaapipluginbase.c: 6871 plugins: ensure display when getting raw caps 6872 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped 6873 meanwhile it is transforming caps. The problem is that stop() calls 6874 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but 6875 the va display is used in tranform_caps() when it is extracting the possible 6876 format conversions. This display disappearing generates warning messages. 6877 This patch holds a local reference of va display at ensure_allowed_raw_caps() 6878 hence it doesn't go away meanwhile it is used, even if the 6879 gst_vaapi_plugin_base_close() is called in other thread. 6880 https://bugzilla.gnome.org/show_bug.cgi?id=773593 6881 68822016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6883 6884 * gst/vaapi/gstvaapiencode_h264.c: 6885 * gst/vaapi/gstvaapiencode_h265.c: 6886 plugins: fix code style for errors 6887 68882016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6889 6890 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 6891 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c: 6892 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c: 6893 * gst-libs/gst/vaapi/gstvaapicontext.c: 6894 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c: 6895 * gst-libs/gst/vaapi/gstvaapidecoder.c: 6896 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 6897 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 6898 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 6899 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 6900 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 6901 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 6902 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 6903 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 6904 * gst-libs/gst/vaapi/gstvaapidisplay.c: 6905 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 6906 * gst-libs/gst/vaapi/gstvaapiencoder.c: 6907 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 6908 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 6909 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 6910 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 6911 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 6912 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 6913 * gst-libs/gst/vaapi/gstvaapifilter.c: 6914 * gst-libs/gst/vaapi/gstvaapiimage.c: 6915 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 6916 * gst-libs/gst/vaapi/gstvaapiparser_frame.c: 6917 * gst-libs/gst/vaapi/gstvaapipixmap.c: 6918 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 6919 * gst-libs/gst/vaapi/gstvaapisurface.c: 6920 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 6921 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 6922 * gst-libs/gst/vaapi/gstvaapitexture.c: 6923 * gst-libs/gst/vaapi/gstvaapiutils.c: 6924 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 6925 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 6926 * gst-libs/gst/vaapi/gstvaapiwindow.c: 6927 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 6928 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 6929 libs: fix code style for errors 6930 69312016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6932 6933 * gst/vaapi/gstvaapipluginbase.c: 6934 * gst/vaapi/gstvaapivideocontext.c: 6935 plugins: update GstGL deprecated symbol 6936 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT. 6937 69382016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6939 6940 * gst/vaapi/gstvaapipluginbase.c: 6941 plugins: direct render when raw video 6942 Enable the direct rendering with linear surfaces if the negotiated src caps 6943 are video/x-raw without features. 6944 Pass also the caps, since they are needed to know the requested caps features. 6945 69462016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6947 6948 * gst/vaapi/gstvaapipluginbase.c: 6949 plugins: move src allocator error to instantiator 6950 Just as we did in ensure_sinkpad_allocator(), let's move the error message 6951 into the ensure_srcpad_allocator() from the caller, 6952 gst_vaapi_plugin_base_decide_allocation() 6953 69542016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6955 6956 * gst/vaapi/gstvaapipluginbase.c: 6957 plugins: enable direct upload if raw video 6958 Enable the direct upload with linear surfaces if the negotiated sink caps are 6959 video/x-raw without features. 6960 69612016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6962 6963 * gst/vaapi/gstvaapipluginutil.c: 6964 * gst/vaapi/gstvaapipluginutil.h: 6965 pluginutil: add gst_caps_is_video_raw() 6966 69672016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6968 6969 * gst/vaapi/gstvaapipluginbase.c: 6970 plugins: receive caps in ensure_sinkpad_allocator() 6971 Instead of receiving the GstVideoInfo structure as parameter, get the original 6972 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better 6973 which allocator instantiate. 6974 69752016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6976 6977 * gst/vaapi/gstvaapivideomemory.c: 6978 vaapivideomemory: destroy derived image at unmap 6979 If the allocator was configured to use direct upload or rendering, the 6980 generated derived image created at mapping needs to be destroyed after 6981 unmapping, because, in order to process the surface, it should not be marked 6982 as "busy" by the driver. 6983 69842016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6985 6986 * gst/vaapi/gstvaapivideomemory.c: 6987 vaapivideomemory: enhance logs for direct modes 6988 Print, conditionally, only the enabled direct mode. 6989 69902016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 6991 6992 * gst/vaapi/gstvaapivideomemory.c: 6993 * gst/vaapi/gstvaapivideomemory.h: 6994 vaapivideomemory: add direct upload flag 6995 Adds the direct-upload flag in the GstVaapiVideoAllocator and 6996 GstVaapiVideoMemory. 6997 It still doesn't apply any functional change. 6998 69992016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7000 7001 * gst/vaapi/gstvaapipluginbase.c: 7002 * gst/vaapi/gstvaapivideomemory.c: 7003 * gst/vaapi/gstvaapivideomemory.h: 7004 vaapivideomemory: set direct rendering at run-time 7005 The way to experiment with the direct rendering is through and internal 7006 compiler pre-processor flag. 7007 The current change set enables a way to specified at run-time, as a flag 7008 passed to the allocator at instanciation time. 7009 70102016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7011 7012 * gst/vaapi/gstvaapivideomemory.c: 7013 vaapivideomemory: log in perf category when copy 7014 Log in performance category when the derive image handling fails, falling back 7015 to memory copy. 7016 70172016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7018 7019 * gst/vaapi/gstvaapivideomemory.c: 7020 vaapivideomemory: error log is derive image fails 7021 Instead of a silently failure of the derive image, this patch log an error 7022 message according to the failure. 7023 70242016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7025 7026 * gst/vaapi/gstvaapivideomemory.c: 7027 vaapivideomemory: store surface alloc flags in qdata 7028 For sake of consistency, we should add the requested surface allocation flags 7029 to the object's qdata structure. 7030 70312016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7032 7033 * gst/vaapi/gstvaapivideomemory.c: 7034 vaapivideomemory: category init when object define 7035 Move the Gstreamer debug category initialize to the GObject definition. 7036 70372016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7038 7039 * gst-libs/gst/vaapi/gstvaapitexturemap.c: 7040 libs: vaapitexturemap: trivial code-style fix 7041 70422016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7043 7044 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 7045 libs: display: egl: avoid recreate native display 7046 Instead of passing the native descriptor of the display, just pass the received 7047 GstVaapiDisplay and reuse it. 7048 70492016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7050 7051 * gst/vaapi/gstvaapipluginbase.c: 7052 plugins: log the GstVaapiDisplay name 7053 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly 7054 name. Log it instead of the memory address. 7055 70562016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com> 7057 7058 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: 7059 libs: window: egl: pass native va display 7060 When creating a GstVaapiWindowEGL, it also creates native window by its own 7061 native display. It should pass the native display, either X11 or Wayland. 7062 https://bugzilla.gnome.org/show_bug.cgi?id=768266 7063 70642016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com> 7065 7066 * gst-libs/gst/vaapi/gstvaapidebug.h: 7067 * gst-libs/gst/vaapi/gstvaapidisplay.c: 7068 * gst-libs/gst/vaapi/gstvaapidisplay.h: 7069 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 7070 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: 7071 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 7072 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 7073 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h: 7074 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h: 7075 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 7076 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 7077 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 7078 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 7079 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 7080 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 7081 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 7082 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 7083 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 7084 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 7085 * gst-libs/gst/vaapi/gstvaapitexture_egl.c: 7086 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 7087 * gst-libs/gst/vaapi/gstvaapiutils_egl.h: 7088 * gst/vaapi/gstvaapivideocontext.c: 7089 libs: display: GstVaapiDisplay as GstObject descendant 7090 This patch is to change the inheritance of GstVaapiDisplay to GstObject, 7091 instead of GstVaapiMiniObject. In this way we can use all the available 7092 infrastructure for GObject/GstObject such as GstTracer, GIR, etc. 7093 In addition, a new debug category for GstVaapiDisplay is created to make it 7094 easier to trace debug messages. It is named "vaapidisplay" and it transverse 7095 all the VA display backends (DRM, GLX, EGL, Wayland, ...) 7096 This patch is a step forward to expose GstVaapiDisplay for users in a future 7097 library. 7098 https://bugzilla.gnome.org/show_bug.cgi?id=768266 7099 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7100 7101=== release 1.11.0 === 7102 71032016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com> 7104 7105 * configure.ac: 7106 Back to development 7107 7108=== release 1.10.0 === 7109 71102016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com> 7111 7112 * ChangeLog: 7113 * NEWS: 7114 * configure.ac: 7115 * gstreamer-vaapi.doap: 7116 Release 1.10.0 7117 71182016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7119 7120 * gst/vaapi/gstvaapidecodebin.c: 7121 vaapidecodebin: resurrect disable-vpp property 7122 https://bugzilla.gnome.org/show_bug.cgi?id=773589 7123 71242016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7125 7126 * gst/vaapi/gstvaapidecodebin.c: 7127 vaapidecodebin: name the internal queue 7128 https://bugzilla.gnome.org/show_bug.cgi?id=773589 7129 71302016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7131 7132 * gst/vaapi/gstvaapidecodebin.c: 7133 * gst/vaapi/gstvaapidecodebin.h: 7134 vaapidecodebin: remove unused variables 7135 Since vaapipostproc is only registered if the driver supports it, all the 7136 support for dynamic loading were removed. Though some leftovers remained. 7137 https://bugzilla.gnome.org/show_bug.cgi?id=773589 7138 71392016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7140 7141 * docs/plugins/Makefile.am: 7142 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: 7143 * docs/plugins/running.xml: 7144 docs: document environment variables 7145 https://bugzilla.gnome.org/show_bug.cgi?id=773544 7146 71472016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7148 7149 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: 7150 * docs/plugins/gstreamer-vaapi-plugins-sections.txt: 7151 * gst/vaapi/Makefile.am: 7152 * gst/vaapi/gstvaapidecode.c: 7153 * gst/vaapi/gstvaapidecodebin.c: 7154 * gst/vaapi/gstvaapidecodedoc.c: 7155 docs: replace vaapidecode with each codec 7156 In the spirit of the codec split, this patch removes the documentation of 7157 vaapidecode and adds a page per each possible decoder. 7158 Nonetheless, only those available in the compilation system are going to be 7159 instrospected, because the rest are not registered. 7160 71612016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7162 7163 * gst/vaapi/gstvaapipluginutil.c: 7164 * gst/vaapi/gstvaapivideobuffer.c: 7165 * gst/vaapi/gstvaapivideometa.c: 7166 docs: add missing long descriptions 7167 71682016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7169 7170 * gst/vaapi/gstvaapipostproc.c: 7171 vaapipostproc: use GST_*_OBJECT when possible 7172 Since we can have several vaapipostproc operating in a pipeline, it is useful 7173 to know which one is generating the logging message. 7174 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7175 71762016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7177 7178 * gst/vaapi/gstvaapidecode.c: 7179 * gst/vaapi/gstvaapidecode.h: 7180 vaapidecode: rename member to allowed_sinkpad_caps 7181 vaapidecode has a member named allowed_caps, but this name is not enough 7182 explicit. This patch renames allowed_caps to allowed_sinkpad_caps. 7183 No functional changes were included. 7184 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7185 71862016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7187 7188 * gst/vaapi/gstvaapiencode_h264.c: 7189 * gst/vaapi/gstvaapiencode_h265.c: 7190 * gst/vaapi/gstvaapisink.c: 7191 * gst/vaapi/gstvaapivideomemory.c: 7192 * gst/vaapi/gstvaapivideometa.c: 7193 * gst/vaapi/gstvaapivideometa_texture.c: 7194 plugins: fix code style for errors 7195 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7196 71972016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7198 7199 * gst/vaapi/gstvaapivideomemory.c: 7200 vaapivideomemory: comment style 7201 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7202 72032016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7204 7205 * gst/vaapi/gstvaapivideomemory.c: 7206 * gst/vaapi/gstvaapivideomemory.h: 7207 vaapivideomemory: rename input parameter 7208 In order to clarify the use of flag as input parameter, it is renamed to 7209 surface_alloc_flag, since it is used when creating a VA surface with certain 7210 properties. 7211 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7212 72132016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7214 7215 * gst/vaapi/gstvaapidecode.c: 7216 vaapidecode: rename element description 7217 So encoders and decoders have similar descriptions. 7218 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7219 72202016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7221 7222 * gst/vaapi/gstvaapiencode_h264.c: 7223 * gst/vaapi/gstvaapiencode_h265.c: 7224 vaapiencode: h264, h265: rename codec name 7225 So encoder and decoders have the same codec name. 7226 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7227 72282016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7229 7230 * gst/vaapi/gstvaapipluginbase.c: 7231 plugins: simplify code 7232 Merge two lines of variable declarations. 7233 https://bugzilla.gnome.org/show_bug.cgi?id=773497 7234 72352016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com> 7236 7237 * gst-libs/gst/vaapi/gstvaapidecoder.c: 7238 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: 7239 * gst-libs/gst/vaapi/gstvaapitexture_priv.h: 7240 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 7241 libs: minor correction for logical consistency 7242 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should 7243 use its methods, even though it doesn't change functionality. 7244 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of 7245 GstVaapiObject, hence its methods shall be used. 7246 https://bugzilla.gnome.org/show_bug.cgi?id=772554 7247 72482016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com> 7249 7250 * gst/vaapi/gstvaapivideomemory.c: 7251 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)' 7252 In short GstFdMemory is configured to call close when using 7253 GstDmabufMemory. 7254 https://bugzilla.gnome.org/show_bug.cgi?id=755072 7255 72562016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7257 7258 * configure.ac: 7259 * gst-libs/gst/vaapi/Makefile.am: 7260 build: clean up the dlopen usage 7261 72622016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7263 7264 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 7265 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 7266 encoder: h264,h265: fix regression in offset count 7267 In commit dc35dafa a bug was introduced because I assumed that 7268 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake. 7269 https://bugzilla.gnome.org/show_bug.cgi?id=772259 7270 72712016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7272 7273 * README: 7274 docs: update README 7275 72762016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7277 7278 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 7279 libs: display: egl: remove unused header include 7280 The header gmodule.h is not used since the library dynamic loading for EGL 7281 display was removed. 7282 https://bugzilla.gnome.org/show_bug.cgi?id=772599 7283 7284=== release 1.9.90 === 7285 72862016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com> 7287 7288 * ChangeLog: 7289 * NEWS: 7290 * common: 7291 * configure.ac: 7292 * gstreamer-vaapi.doap: 7293 Release 1.9.90 7294 72952016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com> 7296 7297 * gst/vaapi/gstvaapidecode.c: 7298 * gst/vaapi/gstvaapidecodebin.c: 7299 * gst/vaapi/gstvaapiencode_h264.c: 7300 * gst/vaapi/gstvaapiencode_h265.c: 7301 * gst/vaapi/gstvaapiencode_jpeg.c: 7302 * gst/vaapi/gstvaapiencode_mpeg2.c: 7303 * gst/vaapi/gstvaapiencode_vp8.c: 7304 * gst/vaapi/gstvaapipostproc.c: 7305 * gst/vaapi/gstvaapisink.c: 7306 vaapi: use new gst_element_class_add_static_pad_template() 7307 https://bugzilla.gnome.org/show_bug.cgi?id=763083 7308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7309 73102016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com> 7311 7312 * gst/vaapi/gstvaapipluginbase.c: 7313 plugins: reset textures at negotiation/shutdown 7314 When caps reconfiguration is called, the new downstream frame size might be 7315 different. Thus, if the downstream caps change,the display's texture map is 7316 reset. 7317 In addition, during pipeline shutdown, textures in texture map have to be 7318 released, since each one have a reference to the GstVaapiDisplay object, which 7319 is a dangerous circular reference. 7320 https://bugzilla.gnome.org/show_bug.cgi?id=769293 7321 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7322 73232016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com> 7324 7325 * gst-libs/gst/vaapi/gstvaapidisplay.c: 7326 * gst-libs/gst/vaapi/gstvaapidisplay.h: 7327 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 7328 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h: 7329 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 7330 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 7331 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 7332 * gst/vaapi/gstvaapivideometa_texture.c: 7333 libs: display{egl,glx}: cache GstVaapiTextures 7334 instances when created and reuse 7335 This patch improves performance when glimagesink uploads a GL texture. 7336 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an 7337 instance of GstVaapiTextureMap, so our internal texture structure can be found 7338 by matching the GL texture id for each frame upload process, avoiding the 7339 internal texture structure creation and its following destruction. 7340 https://bugzilla.gnome.org/show_bug.cgi?id=769293 7341 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7342 73432016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com> 7344 7345 * gst-libs/gst/vaapi/Makefile.am: 7346 * gst-libs/gst/vaapi/gstvaapitexturemap.c: 7347 * gst-libs/gst/vaapi/gstvaapitexturemap.h: 7348 libs: vaapitexturemap: implement GstVaapiTextureMap 7349 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be 7350 reused. Internally it is a hash table. 7351 Note that it is GstObject based rather than GstVaapiObject, as part of the future 7352 converstion to GstObject of most of the code. 7353 https://bugzilla.gnome.org/show_bug.cgi?id=769293 7354 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7355 73562016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 7357 7358 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 7359 encoder: vp8: Increase the allocation size for coded buffer 7360 We are not getting enough compression for some streams and 7361 encoded frame end up with more size than allocated. 7362 Assuming a compression ratio of 4, which should be good enough 7363 for holding the frames. 7364 https://bugzilla.gnome.org/show_bug.cgi?id=771528 7365 73662016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 7367 7368 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 7369 encoder: vp9: Fix refresh frame flag setting 7370 While doing the mode-1 referece picture selection, 7371 the circular buffer logic was not correctly setting the 7372 refresh frame flags as per VP9 spec. 7373 Make sure refresh_flag[0] get updated correclty after 7374 each cycle of GST_VP9_REF_FRAMES. 7375 https://bugzilla.gnome.org/show_bug.cgi?id=771507 7376 73772016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7378 7379 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 7380 vaapidecode: codec_data minimal size is 7 7381 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the 7382 stream, not in the codec_data, so the size of codec_data might be 7. 7383 This patch reduces the minimal size of the codec_data buffer from 8 to 7. 7384 https://bugzilla.gnome.org/show_bug.cgi?id=771441 7385 73862016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7387 7388 * gst/vaapi/gstvaapidecode.c: 7389 vaapidecode: reset decoder hard when set_format() 7390 set_format() is called by upstream when the stream capabilites has changed. 7391 Before, if the new stream is compatible with the old one the VA decoder was 7392 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores 7393 when the upstreamer parsers gets more details of the stream, such as the 7394 framerate. Hence, when the src caps are negotiates, the further sink caps 7395 updates are ignored. 7396 This patch forces the VA decoder destroying and recreation when set_format() 7397 is called. 7398 https://bugzilla.gnome.org/show_bug.cgi?id=770921 7399 74002016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com> 7401 7402 * configure.ac: 7403 configure: Depend on gstreamer 1.9.2.1 7404 74052016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7406 7407 * gst/vaapi/gstvaapivideomemory.c: 7408 Revert "vaapivideomemory: load VA Image when mapping to write" 7409 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112. 7410 74112016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com> 7412 7413 * common: 7414 Automatic update of common submodule 7415 From b18d820 to f980fd9 7416 74172016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com> 7418 7419 * common: 7420 Automatic update of common submodule 7421 From f49c55e to b18d820 7422 74232016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com> 7424 7425 * gst/vaapi/gstvaapipluginbase.c: 7426 plugins: set allocator's image size to sinkpad bufferpool 7427 Otherwise the buffer is always ditched by the bufferpool, losing performance. 7428 https://bugzilla.gnome.org/show_bug.cgi?id=771035 7429 74302016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7431 7432 * gst-libs/gst/vaapi/gstvaapisurface.c: 7433 libs: surface: ensure composite overlay is not bigger 7434 Ensure the composition overlay rectangle (subtitles) is not bigger than 7435 the surface where it is going to be composited and rendered. 7436 https://bugzilla.gnome.org/show_bug.cgi?id=766978 7437 74382016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com> 7439 7440 * gst/vaapi/gstvaapivideomemory.c: 7441 vaapivideomemory: load VA Image when mapping to write 7442 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call 7443 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid 7444 in this case. 7445 https://bugzilla.gnome.org/show_bug.cgi?id=766978 7446 74472016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7448 7449 * gst/vaapi/gstvaapidecode.c: 7450 vaapidecode: merge vc1 and wmv3 elements 7451 This patch merges vaapivc1dec and vaapiwmv3dec into a single 7452 vaapivc1dec. Also, removed the WMVA format, since it is not 7453 supported by libva. 7454 https://bugzilla.gnome.org/show_bug.cgi?id=734093 7455 74562016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7457 7458 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 7459 decoder: vc1: fails only on advanced profile 7460 In commit 2eb4394 the frame coding mode was verified for progressive 7461 regardless the profile. But the FCM is only valid in the advanced 7462 profile. This patch checks for the advanced profile before verifying FCM for 7463 progressive. 7464 https://bugzilla.gnome.org/show_bug.cgi?id=769250 7465 74662016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7467 7468 * gst/vaapi/gstvaapi.c: 7469 vaapi: DISPLAY envvar as dependency 7470 In a multiple video cards system, a X11 environment may have different VA 7471 capabilities. This patch tracks the DISPLAY environment variable to 7472 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY. 7473 https://bugzilla.gnome.org/show_bug.cgi?id=770357 7474 74752016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com> 7476 7477 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 7478 decoder: vc1: Fail only on actual interlaced frames 7479 In the earlier patch: 7480 f31d9f3 decoder: vc1: Print error on interlaced content 7481 Decoding would error out if the interlace flag was set in the 7482 sequence bdu. This isn't quite right because a video can have this 7483 flag set and yet not have any interlaced pictures. 7484 Here instead we error out when either parsing a field bdu or 7485 decoding a frame bdu which has fcm set to anything other than 7486 progressive. 7487 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 7488 https://bugzilla.gnome.org/show_bug.cgi?id=769250 7489 74902016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com> 7491 7492 * configure.ac: 7493 Back to development 7494 7495=== release 1.9.2 === 7496 74972016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com> 7498 7499 * ChangeLog: 7500 * NEWS: 7501 * configure.ac: 7502 * gstreamer-vaapi.doap: 7503 Release 1.9.2 7504 75052016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com> 7506 7507 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 7508 decoder: vc1: Print error on interlaced content 7509 Interlaced video is as yet unsupported in the vc1 element. Print 7510 an error to make that more obvious. 7511 https://bugzilla.gnome.org/show_bug.cgi?id=769250 7512 75132016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7514 7515 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 7516 encoder: h264: fix C90 mixed declarations and code 7517 Commit 4259d1a introduced this compilation error. This patch fixes it. 7518 75192016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7520 7521 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 7522 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 7523 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 7524 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 7525 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate 7526 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic 7527 to avoid overflows, underflows and loss of precision. 7528 https://bugzilla.gnome.org/show_bug.cgi?id=768458 7529 75302016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7531 7532 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 7533 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 7534 vaapiencode: h264,h265: validate fps numerator 7535 Validate that fps numerator is non-zero so it can be used to calculate 7536 the duration of the B frame. 7537 Also it gst_util_uint64_scale() is used instead of normal arithmetic in 7538 order to aviod overflows, underflows and loss of precision. 7539 https://bugzilla.gnome.org/show_bug.cgi?id=768458 7540 75412016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com> 7542 7543 * gst/vaapi/gstvaapi.c: 7544 encoders: demote to RANK_NONE since not fit for autoplugging yet 7545 Encoders claim to support a whole bunch of input formats but then 7546 just error out if the format is not actually supported, even if 7547 there's a converter in front. This means they're not fit for 7548 autoplugging in encodebin or camerabin yet and therefore should 7549 not have a rank. People can still use them in custom pipelines. 7550 https://bugzilla.gnome.org/show_bug.cgi?id=769266 7551 75522016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7553 7554 * gst/vaapi/gstvaapipluginbase.c: 7555 plugins: check dmabuf-import for sink pad allocator 7556 Check earlier if upstream video source has activated the dmabuf-import 7557 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a 7558 new allocator. 7559 75602016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7561 7562 * gst/vaapi/gstvaapipluginbase.c: 7563 plugins: reset allocators if video info changed 7564 If the frame size or format, change, the allocators are reset, so a new ones 7565 can be created with the new video info. 7566 75672016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7568 7569 * gst/vaapi/gstvaapipluginbase.c: 7570 plugins: remove sink pad allocator if caps change 7571 If the negotiated sinkpad caps change, destroy the assignated allocator, 7572 because it is not valid anymore. 7573 75742016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7575 7576 * gst/vaapi/gstvaapipluginutil.c: 7577 * gst/vaapi/gstvaapipluginutil.h: 7578 pluginutil: const params to gst_video_info_changed() 7579 Since they are not modified, we should mark them as const. 7580 75812016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7582 7583 * gst/vaapi/gstvaapipluginbase.c: 7584 * gst/vaapi/gstvaapivideomemory.c: 7585 * gst/vaapi/gstvaapivideomemory.h: 7586 gstvaapivideomemory: allocator's image size getter 7587 Add the method gst_allocator_get_vaapi_image_size() for the 7588 GstVaapiVideoAllocator, which gets the size of the allocated images with the 7589 current video info. 7590 This method replaces the direct call to the allocator's image info when the 7591 pool is configured. 7592 75932016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com> 7594 7595 * gst/vaapi/gstvaapipluginbase.c: 7596 plugins: update buffer pool size with new allocator's image size 7597 Depends on media, video size is sometimes updated with new allocator. 7598 It leads to dismatch between bufferpool's set size and real allocated buffer size. 7599 In this case, it causes every buffer is freed during release in bufferpool, 7600 which should be reused. This affects performance. 7601 https://bugzilla.gnome.org/show_bug.cgi?id=769248 7602 76032016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7604 7605 * configure.ac: 7606 configure: remove gmodule-2.0 EGL dependency 7607 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries, 7608 thus the dependency to gmodule-2.0 is not mandatory anymore. 7609 76102016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com> 7611 7612 * configure.ac: 7613 configure: Fix non-fatal PKG_CHECK_MODULES invocations 7614 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if 7615 the package is missing, but action-if-not-found was given as an empty 7616 string which still causes the default action to run, which halts 7617 execution. 7618 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 7619 https://bugzilla.gnome.org/show_bug.cgi?id=769237 7620 76212016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7622 7623 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 7624 libs: egl: remove dynamic library loading code 7625 Since the upstream of gstreamer-vaapi, the library is not a public shared 7626 object anymore. But the EGL support depended on this dynamic library, so the 7627 EGL support was broken. 7628 This patch removes the dynamic library loading code and instantiates the 7629 EGL display using either X11 or Wayland if available. 7630 https://bugzilla.gnome.org/show_bug.cgi?id=767203 7631 76322016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7633 7634 * gst/vaapi/gstvaapi.c: 7635 * gst/vaapi/gstvaapidecode.c: 7636 * gst/vaapi/gstvaapidecode.h: 7637 vaapidecode: register only the available decoders 7638 In order to register only the available decoders, this patch queries the 7639 created test VA display, which uses the currently used back-end (X11, Wayland, 7640 DRM, …) on the used display device. 7641 https://bugzilla.gnome.org/show_bug.cgi?id=724352 7642 76432016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7644 7645 * gst/vaapi/gstvaapi.c: 7646 * gst/vaapi/gstvaapipluginutil.c: 7647 * gst/vaapi/gstvaapipluginutil.h: 7648 vaapi: register only the available encoders 7649 In order to register only the available encoders, this patch queries the 7650 created test VA display, which uses the currently used back-end (X11, 7651 Wayland, DRM, …) on the used display device. 7652 https://bugzilla.gnome.org/show_bug.cgi?id=724352 7653 76542016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7655 7656 * gst/vaapi/gstvaapidecode.c: 7657 * gst/vaapi/gstvaapidecodebin.c: 7658 vaapidecode: split all the codecs 7659 Split the vaapidecode to all the supported codecs with the format 7660 vaapi{codec}dec. 7661 vaapidecode is stil registered as a GObject type, but not as a 7662 GStreamer feature, so it can be used internally by vaapidecodebin without 7663 changing its code too much. 7664 https://bugzilla.gnome.org/show_bug.cgi?id=734093 7665 76662016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7667 7668 * gst/vaapi/gstvaapidecodebin.c: 7669 vaapidecodebin: simplify the code 7670 Since the elements dependant of the VA video processor are now only registered 7671 if it is available, vaapidecodebin code can be simplified a lot, removing all 7672 the code required to check if the VA video processor was available. 7673 https://bugzilla.gnome.org/show_bug.cgi?id=768899 7674 76752016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7676 7677 * gst/vaapi/gstvaapidecode.c: 7678 vaapidecode: delay the GstVaapiDisplay instantiating 7679 Delay the GstVaapiDisplay instantiating until when changing the state from 7680 READY to PAUSE. In this way the element has more chances to find an already 7681 created GstVaapiDisplay, or a GL context, in the pipeline. 7682 https://bugzilla.gnome.org/show_bug.cgi?id=766206 7683 76842016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7685 7686 * gst/vaapi/gstvaapipluginutil.c: 7687 pluginutil: set GLX display type 7688 The function gst_vaapi_create_display_from_gl_context() cretes a 7689 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display 7690 when the GL platform was GLX, but a plain X11 VA display. 7691 This patch fixes that, by querying the GL platform earlier. 7692 https://bugzilla.gnome.org/show_bug.cgi?id=766206 7693 76942016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7695 7696 * gst/vaapi/gstvaapipluginbase.c: 7697 * gst/vaapi/gstvaapivideocontext.c: 7698 * gst/vaapi/gstvaapivideocontext.h: 7699 plugins: add gst_vaapi_plugin_base_find_gl_context() 7700 Using the GstContext mechanism, it is possible to find if the pipeline 7701 shares a GstGLContext, even if we are not to negotiating GLTextureUpload 7702 meta. This is interesting because we could negotiate system memory caps 7703 feature, but enable DMABuf if the GstGLContext is EGL with some extensions. 7704 https://bugzilla.gnome.org/show_bug.cgi?id=766206 7705 77062016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7707 7708 * gst/vaapi/gstvaapipluginbase.c: 7709 * gst/vaapi/gstvaapipluginbase.h: 7710 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted() 7711 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(), 7712 it is deleted. 7713 77142016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7715 7716 * gst/vaapi/gstvaapipluginbase.h: 7717 plugins: remove common change_state() vmethod 7718 Remove the common change_state() vmethod for all the plugins, since no one is 7719 using it. 7720 77212016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7722 7723 * gst/vaapi/gstvaapidecode.c: 7724 vaapidecode: remove change_state() vmethod 7725 Since the driver checkup is done at registering, there is no need to do it 7726 when changing the element state from NULL to READY. This patch remove this 7727 vmethod from vaapidecode. 7728 77292016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7730 7731 * gst/vaapi/gstvaapi.c: 7732 vaapi: register vaapipostproc only if supported 7733 Query the GstVaapiDisplay to know if the driver supports video 7734 postprocessing. If does, then register vaapipostproc and vaapidecodebin 7735 elements. 7736 This patch will simplify the design of vaapidecodebin. 7737 https://bugzilla.gnome.org/show_bug.cgi?id=724352 7738 77392016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7740 7741 * gst/vaapi/gstvaapi.c: 7742 vaapi: don't register if VA driver is unsupported 7743 Using the test VA display, the driver name is queried, and if it is not 7744 white-listed, the plugin rejects to register any element. 7745 https://bugzilla.gnome.org/show_bug.cgi?id=724352 7746 77472016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7748 7749 * gst/vaapi/gstvaapipluginbase.c: 7750 * gst/vaapi/gstvaapipluginutil.c: 7751 * gst/vaapi/gstvaapipluginutil.h: 7752 plugins: add gst_vaapi_driver_is_whitelisted() 7753 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a 7754 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used 7755 when registering the plugin's feature set with the test VA display. 7756 https://bugzilla.gnome.org/show_bug.cgi?id=724352 7757 77582016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7759 7760 * gst/vaapi/gstvaapi.c: 7761 vaapi: instantiate a VA display when registering 7762 This patch tries to instantiate a GstVaapiDisplay when registering the plugin 7763 features, if it fails, no gstreamer-vaapi element is registering. 7764 The purpose of this patch is to avoid a situation where the user has 7765 gstreamer-vaapi installed but their VA-API setup is not functional, which may 7766 lead to unexpected behavior. 7767 https://bugzilla.gnome.org/show_bug.cgi?id=724352 7768 77692016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7770 7771 * configure.ac: 7772 * gst/vaapi/gstvaapi.c: 7773 vaapi: declare external dependencies 7774 There are two main external dependencies that define the feature set of this 7775 plugin: a) the kernel and b) the VA driver 7776 This patch tracks both dependencies, if any of them change, GStreamer will 7777 re-inspect the plugin. 7778 The kernel is tracked through the device files /dev/dri/card* 7779 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so, 7780 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also, 7781 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked 7782 since they modify the driver lookup. 7783 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too. 7784 https://bugzilla.gnome.org/show_bug.cgi?id=724352 7785 77862016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7787 7788 * gst/vaapi/gstvaapidecode.c: 7789 vaapidecode: remove unneeded initializations 7790 GObject's memory is set to zero, so there is no need to initialize to zero or 7791 NULL it's class variables. 7792 77932016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7794 7795 * gst/vaapi/gstvaapipluginbase.h: 7796 plugins: remove undefined macros 7797 77982016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7799 7800 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 7801 Revert "gstvaapisurface_drm: release image when done" 7802 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit 7803 372a03a9e38acbf435eb80bf31d9a9844069e504. 7804 While the dmabuf handle is exported, the derive image must exist, otherwise 7805 the image's VA buffer is invalid, thus the dmabuf handle is never released, 7806 leading into a file descriptors leak. 7807 78082016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7809 7810 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 7811 encoder: h265: fix code-style 7812 78132016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7814 7815 * gst/vaapi/gstvaapipostproc.c: 7816 vaapipostproc: update filters at color balance 7817 This is a fix for a regression of previous commit, which updates the filters 7818 only when the property is set, because it is also required to update the 7819 filter when the color balance interface change its values. 7820 78212016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com> 7822 7823 * gst/vaapi/gstvaapipostproc.c: 7824 * gst/vaapi/gstvaapipostproc.h: 7825 vaapipostproc: make it enable/disable pass-through mode 7826 In case that sink caps and src caps are same, and no filtering parameter set, 7827 pass-through mode is enabled. 7828 If new filtering parameter is set during playback, it makes it reconfiguring, 7829 so that pass-through mode is changed 7830 In addition, updating filter is performed during reconfiguration, if needed. 7831 https://bugzilla.gnome.org/show_bug.cgi?id=751876 7832 78332016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com> 7834 7835 * gst-libs/gst/vaapi/gstvaapifilter.c: 7836 * gst-libs/gst/vaapi/gstvaapifilter.h: 7837 * gst/vaapi/gstvaapipostproc.c: 7838 vaapipostproc: checking and updating filter parameter only when it's set 7839 This patch is to avoid checking filter value at every frame. 7840 https://bugzilla.gnome.org/show_bug.cgi?id=751876 7841 78422016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei> 7843 7844 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 7845 decoder: h265: handle the SEI NAL units included in codec_data 7846 The prefix/suffix SEI nal units can appear in codec_data too 7847 which weren't handled before. Parse these SEI headers to 7848 fix the segfault. 7849 https://bugzilla.gnome.org/show_bug.cgi?id=768544 7850 78512016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7852 7853 * docs/plugins/Makefile.am: 7854 build: doc: do not redefine MAINTAINERCLEANFILES 7855 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of 7856 overload it, the files should be added. 7857 78582016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 7859 7860 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 7861 encoder: h264: Fix MVC encode while enabling dct8x8 7862 Pack the transform_8x8_mode_flag and other necessary rbsp data 7863 in packed_pps header for MVC encode. 7864 https://bugzilla.gnome.org/show_bug.cgi?id=768647 7865 78662016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7867 7868 * gst/vaapi/gstvaapisink.c: 7869 vaapisink: demote a debug message to trace 7870 Reduces noise when debugging. 7871 78722016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com> 7873 7874 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 7875 wayland: Error check before using cached wl_display 7876 A planar(or some other) buffer allocation may fail on the driver, then 7877 the wayland connection becomes invalid, not able to send request or 7878 receive any event. So we need to set up a new wayland connection if 7879 there's an error detected on the cached wl_display. 7880 https://bugzilla.gnome.org/show_bug.cgi?id=768761 7881 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7882 78832016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net> 7884 7885 * common: 7886 Automatic update of common submodule 7887 From ac2f647 to f49c55e 7888 78892016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7890 7891 * gst/vaapi/gstvaapiencode.c: 7892 vaapiencode: demote a log to trace level 7893 Removes noise when debugging. 7894 78952016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com> 7896 7897 * gst/vaapi/gstvaapiencode.c: 7898 vaapiencode: implement flush() vmethod 7899 In order to handle correctly seek and other operations, vaapiencode should 7900 flush all the remaining data from the encoder without pushing it downstream. 7901 This patch implements the flush() vmethod, only after of pausing the 7902 source pad task, and restarting it again after the flush stop. 7903 https://bugzilla.gnome.org/show_bug.cgi?id=767176 7904 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7905 79062016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7907 7908 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 7909 decoder: vc1: flush dpb only if opened 7910 Flush the decode picture buffer, if and only if, the decoder is 7911 started. Otherwise the dpb structure might be NULL. 7912 https://bugzilla.gnome.org/show_bug.cgi?id=742922 7913 79142016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com> 7915 7916 * gst/vaapi/gstvaapidecode.c: 7917 * gst/vaapi/gstvaapidecode.h: 7918 vaapidecode: drop non-keyframe in reverse playback 7919 To avoid surface-exhausted situation during reverse playback, 7920 drop frames except for key frame. 7921 Also, to avoid the corruption of the parser state, flush() vmethod 7922 doesn't destroy the VA decoder when playing in reverse. 7923 https://bugzilla.gnome.org/show_bug.cgi?id=742922 7924 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7925 79262016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7927 7928 * gst/vaapi/gstvaapidecode.c: 7929 vaapidecode: unref output frame earlier 7930 The queue in GstVaapiDecode adds an extra reference to the frames. This patch 7931 unref that extra reference earlier making the code simpler to follow. 7932 https://bugzilla.gnome.org/show_bug.cgi?id=768652 7933 79342016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7935 7936 * gst/vaapi/gstvaapidecode.c: 7937 vaapidecode: remove gst_vaapidecode_internal_flush() 7938 As gst_vaapidecode_finish() is the only callee of 7939 gst_vaapidecode_internal_flush(), it is better to inline it. 7940 https://bugzilla.gnome.org/show_bug.cgi?id=768652 7941 79422016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7943 7944 * gst/vaapi/gstvaapidecode.c: 7945 vaapidecode: flush output adapter at drain() 7946 Calling drain() vmethod means "decode any data it can at this point, but that 7947 more data may arrive after". Hence, vaapidecode should check if there is data 7948 in the output adapter and process them, without destroying the decoded picture 7949 buffer (dpb). 7950 Since this operation is done by gst_vaapidecode_internal_flush(), the operation 7951 was refactored into a new function gst_vaapidecode_flush_output_adapter(). 7952 https://bugzilla.gnome.org/show_bug.cgi?id=768652 7953 79542016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7955 7956 * gst/vaapi/gstvaapidecode.c: 7957 vaapidecode: call purge at flush() 7958 Calling flush() vmethod means "to flush all remaining data from the decoder 7959 without pushing it downstream". 7960 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls 7961 gst_video_decoder_have_frame() if there is still something in the input 7962 adapter, which may push buffers to downstream by calling handle_frame(). 7963 This patch changes this behavior by calling gst_vaapidecode_purge() rather 7964 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA 7965 decoder and releases all the rest of decoded frames. 7966 https://bugzilla.gnome.org/show_bug.cgi?id=768652 7967 79682016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7969 7970 * tests/elements/Makefile.am: 7971 * tests/elements/test-vaapisink.c: 7972 test: elements: remove spurious linkage 7973 Element tests only need to link against gstreamer libraries. 7974 79752016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com> 7976 7977 * configure.ac: 7978 configure: Require GLib >= 2.40 like everywhere else 7979 79802016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com> 7981 7982 * configure.ac: 7983 Back to development 7984 7985=== release 1.9.1 === 7986 79872016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com> 7988 7989 * ChangeLog: 7990 * NEWS: 7991 * common: 7992 * configure.ac: 7993 * gstreamer-vaapi.doap: 7994 Release 1.9.1 7995 79962016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 7997 7998 * tests/elements/test-vaapisink.c: 7999 tests: elements: rotate orientation event 8000 80012016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com> 8002 8003 * configure.ac: 8004 * tests/Makefile.am: 8005 * tests/elements/Makefile.am: 8006 * tests/elements/test-vaapisink.c: 8007 tests: elements: Add testsuite for vaapisink 8008 https://bugzilla.gnome.org/show_bug.cgi?id=765798 8009 80102016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com> 8011 8012 * gst-libs/gst/vaapi/gstvaapitypes.h: 8013 * gst-libs/gst/vaapi/gstvaapivalue.c: 8014 * gst/vaapi/gstvaapisink.c: 8015 * gst/vaapi/gstvaapisink.h: 8016 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION 8017 https://bugzilla.gnome.org/show_bug.cgi?id=765798 8018 80192016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8020 8021 * gst/vaapi/gstvaapipostproc.c: 8022 vaapipostproc: return caps template if no display 8023 This patch is a fix for my bad review of commit 6d73ca8d. The element should 8024 be able to return the available raw caps handled by the VA display, but that 8025 only should happen when there a VA display. If there's none, the element 8026 should use the caps template. 8027 https://bugzilla.gnome.org/show_bug.cgi?id=768161 8028 80292016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com> 8030 8031 * gst/vaapi/gstvaapipostproc.c: 8032 vaapipostproc: don't require a vaapi display for all caps queries 8033 This delays the requirement of having a GstVaapiDisplay until later 8034 https://bugzilla.gnome.org/show_bug.cgi?id=768161 8035 80362016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8037 8038 * gst-libs/gst/vaapi/gstvaapiutils.c: 8039 utils: report VP9 profiles 8040 Add VP9Profile0-3 name mapping. 8041 80422016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8043 8044 * gst/vaapi/gstvaapi.c: 8045 vaapi: nest includes under USE_ENCODER macro 8046 This is a missed changeset from commit 1c05c53, since also header includes 8047 should be nested. 8048 80492016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8050 8051 * gst/vaapi/gstvaapi.c: 8052 vaapi: nest encoders under USE_ENCODER macro 8053 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER 8054 macro, it is clearer to nest them, showing explicitly the dependency relation. 8055 80562016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8057 8058 * gst/vaapi/gstvaapivideocontext.c: 8059 vaapivideocontext: check if query context is NULL 8060 Under certain conditions the element might receive a positive context query 8061 but without a context instance. This situation will lead to a segmentation 8062 fault when traversing the context list in the pipeline. 8063 https://bugzilla.gnome.org/show_bug.cgi?id=767946 8064 80652016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com> 8066 8067 * gst-libs/gst/vaapi/Makefile.am: 8068 * gst-libs/gst/vaapi/glibcompat.h: 8069 * gst-libs/gst/vaapi/sysdeps.h: 8070 remove unused glibcompat.h 8071 glibcompat.h is no longer doing anything. Remove it. 8072 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 8073 https://bugzilla.gnome.org/show_bug.cgi?id=767886 8074 80752016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com> 8076 8077 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 8078 encoder: h264: Use high profile by default 8079 Change defaults for max-bframes, cabac, and dct8x8 to be enabled 8080 by default. This will cause the default profile to be high instead 8081 of baseline. In most situations this is the right decision, and 8082 the profile can still be lowered in the case of caps restrictions. 8083 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 8084 https://bugzilla.gnome.org/show_bug.cgi?id=757941 8085 80862016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8087 8088 * gst/vaapi/gstvaapidecodebin.c: 8089 vaapidecodebin: element warning if missing element 8090 Raise an element warning if a required element is not available, thus the 8091 pipeline will post a warning message and the application will be informed. 8092 80932016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com> 8094 8095 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 8096 decoder: h265: fix to release all dpb pictures 8097 Without this, all dpb pictures are not released during flush, 8098 because we used the global dpb_count variable for checking the 8099 dpb fullness which get decremented in dpb_remove_index() 8100 routine during each loop iteration. 8101 https://bugzilla.gnome.org/show_bug.cgi?id=767934 8102 81032016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 8104 8105 * common: 8106 Automatic update of common submodule 8107 From ac2f647 to f363b32 8108 81092016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com> 8110 8111 * gst/vaapi/gstvaapidecode.c: 8112 * gst/vaapi/gstvaapipostproc.c: 8113 vaapi: fix minor leaks 8114 https://bugzilla.gnome.org/show_bug.cgi?id=767868 8115 81162016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8117 8118 * gst/vaapi/gstvaapi.c: 8119 vaapi: remove an already included header 8120 gst/gst.h is already included in gstcompat.h 8121 81222016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8123 8124 * gst/vaapi/gstvaapidecodebin.c: 8125 vaapidecodebin: add vp9 in sink pad template 8126 81272016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8128 8129 * gst/vaapi/gstvaapisink.c: 8130 vaapisink: return caps template if no display 8131 If vaapisink received a caps query before getting a VA display, it returned 8132 only the surfaces related caps. This behavior broke the autovideosink 8133 negotiation. 8134 This patch returns the pad's template caps if no VA display, otherwise the 8135 caps are crafted as before. 8136 https://bugzilla.gnome.org/show_bug.cgi?id=767699 8137 81382016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com> 8139 8140 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 8141 decoder: vp9: Update comment about context resets 8142 Clarify that vaapi context resets are never needed for vp9, but 8143 that ensure_context() needs called when the size increases so that 8144 new surfaces can be allocated. 8145 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 8146 https://bugzilla.gnome.org/show_bug.cgi?id=767474 8147 81482016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com> 8149 8150 * gst-libs/gst/vaapi/gstvaapicontext.c: 8151 * gst-libs/gst/vaapi/gstvaapicontext.h: 8152 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 8153 gstvaapicontext: control reset_on_resize with option 8154 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 8155 https://bugzilla.gnome.org/show_bug.cgi?id=767474 8156 81572016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com> 8158 8159 * gst/vaapi/gstvaapivideobufferpool.c: 8160 vaapivideobufferpool: add video meta to config when needed 8161 In cases where we know the video meta must be present, add it to 8162 the pool configuration. 8163 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 8164 https://bugzilla.gnome.org/show_bug.cgi?id=766184 8165 81662016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com> 8167 8168 * gst/vaapi/gstvaapipluginbase.c: 8169 plugins: retry pool config 8170 if gst_buffer_pool_set_config returns FALSE, check the modified 8171 config and retry set_config if the config is still acceptable. 8172 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 8173 https://bugzilla.gnome.org/show_bug.cgi?id=766184 8174 81752016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8176 8177 * gst/vaapi/gstvaapivideomemory.h: 8178 vaapivideomemory: internal attributes to methods 8179 Mark as internal the functions used by VA-API dmabuf allocator. 8180 81812016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8182 8183 * gst/vaapi/gstvaapipluginbase.c: 8184 plugins: remove precondition for decide_allocation() 8185 There's no need to check for the display in the plugin object when 8186 decide_allocation() vmethod is called, because the display will created or 8187 re-created along the method execution. 8188 81892016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8190 8191 * gst/vaapi/gstvaapipluginbase.c: 8192 plugins: avoid possible memory leaks 8193 Get the pool config just before use it, to avoid a memory leak if the 8194 allocator cannot be instantiated. Similarly, return FALSE if the configuration 8195 cannot be set, avoid keep a not used allocator in the pool. 8196 81972016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8198 8199 * gst/vaapi/gstvaapipluginbase.c: 8200 plugins: use GstParentBufferMeta 8201 Instead of using the VASurface proxy's notify, which is internal gstvaapi API, 8202 use the GStreamer's GstParentBufferMeta. 8203 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8204 82052016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8206 8207 * gst/vaapi/gstvaapipluginbase.c: 8208 plugins: cache VASurfaces from dmabufs 8209 This patch avoids the creation of a VASurface each time a new input buffer is 8210 processed, caching them in the input buffer itself. 8211 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8212 82132016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8214 8215 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 8216 * gst-libs/gst/vaapi/gstvaapisurface_drm.h: 8217 * gst/vaapi/gstvaapipluginbase.c: 8218 libs: change gst_vaapi_surface_new_with_dma_buf_handle() 8219 Instead of passing the data already in GstVideoInfo, let's just pass the 8220 GstVideoInfo structure. 8221 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8222 82232016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8224 8225 * gst/vaapi/gstvaapipluginbase.c: 8226 * gst/vaapi/gstvaapipluginbase.h: 8227 plugins: use an unique allocator per pad 8228 Instead of instantiating an allocator per vaapivideobufferpool, only one 8229 allocator is instantiated per element's pad and shared among future pools. 8230 If the pad's caps changes, the allocator is reset. 8231 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8232 82332016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8234 8235 * gst/vaapi/gstvaapipluginbase.c: 8236 * gst/vaapi/gstvaapivideobufferpool.c: 8237 * gst/vaapi/gstvaapivideobufferpool.h: 8238 vaapivideobufferpool: share options flag with pluginbase 8239 Originally, vaapivideobufferpool has a set of boolean variables for the 8240 buffer configuration options. 8241 This pach changes these boolean variables for a single bitwise, just as 8242 it is used in pluginbase. Hence, the internal enum was moved to 8243 vaapivideobufferpool header. 8244 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8245 82462016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8247 8248 * gst/vaapi/gstvaapipluginbase.c: 8249 plugins: add gst_vaapi_plugin_base_create_pool() 8250 This patch refactors the code in pluginbase in order to centralize the buffer 8251 pool instantiation. As the buffer pool config may have different options, these 8252 are gathered using a bitwise flag. 8253 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8254 82552016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8256 8257 pluginbase negotiates allocator with bufferpool 8258 Originally vaapivideobufferpool instantiates its own allocator regardless the 8259 received configuration, and it relies in custom configuration options to 8260 choose which kind of allocator instantiate. 8261 This patch transfers the responsibility of the allocator instantiate to 8262 vaapipluginbase and pass it to the vaapivideobufferpool through its 8263 configuration. 8264 * gst/vaapi/gstvaapipluginbase.c 8265 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool 8266 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in 8267 bufferpool configuration 8268 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if 8269 needed. 8270 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video 8271 allocator in bufferpool configuration 8272 * gst/vaapi/gstvaapivideobufferpool.c 8273 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the 8274 allocator, process the received one through its configuration. 8275 * gst/vaapi/gstvaapivideobufferpool.h: removed 8276 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore. 8277 * gst/vaapi/gstvaapivideomemory.c 8278 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf 8279 allocator with the vaapi qdata. 8280 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8281 82822016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8283 8284 * gst/vaapi/gstvaapivideobufferpool.c: 8285 vaapivideobufferpool: keep only current video info 8286 Instead of keeping old and new GstVideoInfo video structure, we only keep one, 8287 the current one, the negotiated. The old one is not needed at all. 8288 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8289 82902016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8291 8292 * gst/vaapi/gstvaapipluginbase.c: 8293 * gst/vaapi/gstvaapipluginutil.c: 8294 * gst/vaapi/gstvaapipluginutil.h: 8295 * gst/vaapi/gstvaapivideomemory.c: 8296 pluginutil: add gst_video_info_force_nv12_if_encoded() 8297 This lines repeat a couple times in the code, so it would be better to put it 8298 a helper function. 8299 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8300 83012016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8302 8303 * gst/vaapi/gstvaapipluginutil.c: 8304 * gst/vaapi/gstvaapipluginutil.h: 8305 * gst/vaapi/gstvaapipostproc.c: 8306 * gst/vaapi/gstvaapivideobufferpool.c: 8307 pluginutil: add gst_video_info_changed() helper 8308 This function is shared among different elements, so let factorized it. 8309 https://bugzilla.gnome.org/show_bug.cgi?id=765435 8310 83112016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com> 8312 8313 * gst/vaapi/gstvaapipostprocutil.c: 8314 vaapipostproc: Add colorimetry attributes to src caps 8315 https://bugzilla.gnome.org/show_bug.cgi?id=766596 8316 83172016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com> 8318 8319 * gst/vaapi/gstvaapidecode.c: 8320 vaapidecode: remove chroma-site and colorimetry from src caps 8321 https://bugzilla.gnome.org/show_bug.cgi?id=766596 8322 83232016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com> 8324 8325 * gst/vaapi/gstvaapipostproc.c: 8326 * gst/vaapi/gstvaapipostproc.h: 8327 vaapipostproc: add postproc_lock to protect data members 8328 Add a mutex to postproc to protect concurrent access to data members. 8329 Previously set_caps() could release the allowed_srcpad_caps while 8330 transform_caps was in the middle of using it. 8331 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com> 8332 https://bugzilla.gnome.org/show_bug.cgi?id=766940 8333 83342016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8335 8336 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 8337 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h: 8338 encoder: vp9: Add simple algorithms for reference picture selection 8339 Added two modes(as properties) for reference picture selection: 8340 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe 8341 and LastRef is pointing to the previous frame. 8342 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef 8343 and n-2 th frame as AltRef 8344 https://bugzilla.gnome.org/show_bug.cgi?id=766048 8345 83462016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8347 8348 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 8349 encoder: vp9: Define Max frame width and height 8350 https://bugzilla.gnome.org/show_bug.cgi?id=766048 8351 83522016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8353 8354 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 8355 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h: 8356 encoder: vp9: Add more propertis for tuning encode quality 8357 Added three tuning properties: 8358 1: filter_level 8359 2: sharpness_level 8360 3: luma ac quant-table index 8361 https://bugzilla.gnome.org/show_bug.cgi?id=766048 8362 83632016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8364 8365 * gst/vaapi/Makefile.am: 8366 * gst/vaapi/gstvaapi.c: 8367 * gst/vaapi/gstvaapiencode_vp9.c: 8368 * gst/vaapi/gstvaapiencode_vp9.h: 8369 Add vp9 encode element to "vaapi" plugin 8370 https://bugzilla.gnome.org/show_bug.cgi?id=766048 8371 83722016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8373 8374 * gst-libs/gst/vaapi/Makefile.am: 8375 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c: 8376 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h: 8377 Add vp9 encoder support in libgstvaapi 8378 https://bugzilla.gnome.org/show_bug.cgi?id=766048 8379 83802016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8381 8382 * configure.ac: 8383 build: Add check for VP9 encode API support in libva 8384 https://bugzilla.gnome.org/show_bug.cgi?id=766048 8385 83862016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8387 8388 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 8389 gstvaapisurface_drm: fix internal documentation 8390 83912016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8392 8393 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 8394 gstvaapisurface_drm: fix code-style 8395 83962016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8397 8398 * gst/vaapi/gstvaapipluginbase.c: 8399 plugins: remove unused header 8400 Remove the include of gst/allocators/allocators.h since it is not used. 8401 84022016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8403 8404 * gst/vaapi/gstvaapivideobufferpool.h: 8405 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META 8406 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to 8407 keep compatibility definition. 8408 This patch removes the definition of 8409 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in 8410 gst-plugins-base version 1.2.2 8411 84122016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8413 8414 * gst/vaapi/gstvaapipluginbase.c: 8415 plugins: add gst_vaapi_buffer_pool_caps_is_equal() 8416 This is a helper function to improve the readability of 8417 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be 8418 re-instantiated. 8419 84202016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8421 8422 * gst/vaapi/gstvaapipluginbase.c: 8423 plugins: deactivate buffer pool before unref 8424 This buffer pool may still be processing buffers when a caps renegotiation is 8425 done. This one-liner patch deactivates the pool to drain it before it 8426 de-allocation. 8427 84282016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8429 8430 * gst/vaapi/gstvaapipluginbase.c: 8431 plugins: no sinkpad bufferpool when decoder 8432 Right now, the decoders create a buffer pool for their sink pad which is not 8433 used at all, because the decoders have never proposed it to upstream. 8434 This patch avoids the buffer pool instantiating when the element inherits from 8435 the GstVideoDecoder class. 8436 84372016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8438 8439 * gst/vaapi/gstvaapipluginbase.c: 8440 plugins: avoid to get/set pool config twice 8441 This patch is a bit of optimization, since the bufferpool configuration is get 8442 when the pool is created. Hence, we only need to request it when the pool from 8443 the allocation query is reused. 8444 84452016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8446 8447 * gst/vaapi/gstvaapipluginbase.c: 8448 plugins: destroy pool earlier if non-vaapi 8449 If the offered pool in decide_allocation() vmethod doesn't have the 8450 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared, 8451 so it could be created later. 8452 84532016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8454 8455 * gst/vaapi/gstvaapivideobufferpool.c: 8456 vaapivideobufferpool: split caps validation 8457 When validating the caps from bufferpool config, this patch distinguishes the 8458 error from no caps received (NULL) from the invalid caps (cannot be converted 8459 into GstVideoInfo structure). 8460 84612016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8462 8463 * gst/vaapi/gstvaapidecode.c: 8464 * gst/vaapi/gstvaapipluginbase.c: 8465 plugins: check for caps in query earlier 8466 Check for caps as soon gst_query_parse_allocation() returns. 8467 84682016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8469 8470 * gst/vaapi/gstvaapipluginbase.c: 8471 * gst/vaapi/gstvaapipluginbase.h: 8472 plugins: remove unused variables 8473 This variables stopped to be used since commit 001a5c63, which removed the 8474 gstvaapiuploader. 8475 84762016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8477 8478 * gst/vaapi/gstvaapipluginbase.c: 8479 plugins: fix potential memleak from commit 9159328 8480 If gst_video_info_from_caps() fails it is required to unref the instantiated 8481 pool. 8482 84832016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8484 8485 * gst/vaapi/gstvaapipostproc.c: 8486 vaapipostproc: handle if gst_video_info_from_caps() fails 8487 Return FALSE is the received caps cannot be transformed into a GstVideoInfo 8488 structure. 8489 84902016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8491 8492 * gst/vaapi/gstvaapipluginbase.c: 8493 plugins: handle if gst_video_info_from_caps() fails 8494 Let's play safe and return error if, somehow, the received caps are wrong. 8495 84962016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8497 8498 * gst/vaapi/gstvaapipluginbase.c: 8499 plugins: relate errors to instance 8500 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs 8501 will show the name of the vaapipluginbase instance that failed. 8502 Also, the code-style is fixed, where some error labels need to be surrounded 8503 by braces. 8504 85052016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8506 8507 * gst/vaapi/gstvaapipluginbase.c: 8508 * gst/vaapi/gstvaapipluginutil.c: 8509 * gst/vaapi/gstvaapisink.c: 8510 plugins: use GstVideoInfo accessors 8511 Instead of access to GstVideInfo members directly, use their accessors 8512 macros. This patch makes more resistance to future changes in GStreamer core. 8513 85142016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8515 8516 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 8517 * gst/vaapi/gstvaapipluginbase.c: 8518 * gst/vaapi/gstvaapipostproc.c: 8519 * tests/simple-encoder.c: 8520 remove spurious gst_video_info_init() 8521 gst_video_info_set_format() and gst_video_info_from_caps() call, internally, 8522 gst_video_info_init(), hence it is not required to call it before them. This 8523 patch removes these spurious calls. 8524 85252016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8526 8527 * gst/vaapi/gstvaapipluginbase.c: 8528 vaapipluginbase: code-style: rename goto label 8529 The error labels have error_ prefix, but this one. 8530 85312016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8532 8533 * gst/vaapi/gstvaapivideomemory.c: 8534 vaapivideomemory: use allocator custom alloc flag 8535 Instead of a dummy alloc() vmethod, the allocator instance set the flag 8536 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call 8537 gst_allocator_alloc() on the allocator. 8538 85392016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8540 8541 * gst/vaapi/gstvaapivideobufferpool.c: 8542 vaapivideobufferpool: relate errors to instance 8543 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of 8544 the vaapivideobufferpool instance that failed. 8545 85462016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8547 8548 * gst/vaapi/gstvaapipluginbase.c: 8549 plugins: remove gst_vaapi_plugin_base_set_pool_config() 8550 This function helper make sense for GStreamer 1.2, but it is not helpful for 8551 greater version since the validation is already done in the API implementation. 8552 Thus, it is removed. 8553 85542016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8555 8556 * gst/vaapi/gstvaapipluginbase.c: 8557 gstvaapipluginbase: Fix typo in doc 8558 85592016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8560 8561 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 8562 encoder : h264: Disable b-frame encode in low-power mode 8563 This is a workaround since vaapi-intel-driver doesn't have 8564 support for B-frame encode when utilizing low-power-enc 8565 hardware block. 8566 Fixme :We should query the VAConfigAttribEncMaxRefFrames 8567 instead of blindly disabling b-frame support and set b/p frame count, 8568 buffer pool size etc based on the query result. 8569 https://bugzilla.gnome.org/show_bug.cgi?id=766050 8570 85712016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8572 8573 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 8574 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 8575 encoder: h264 : Use "tune=low-power" for enabling lowpower encode 8576 Remove the duplicate property "low-power-enc" and use the 8577 tune property for enabling low power encoding mode. 8578 https://bugzilla.gnome.org/show_bug.cgi?id=766050 8579 85802016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8581 8582 * gst-libs/gst/vaapi/gstvaapiencoder.c: 8583 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint 8584 https://bugzilla.gnome.org/show_bug.cgi?id=766050 8585 85862016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8587 8588 * gst-libs/gst/vaapi/gstvaapiencoder.c: 8589 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 8590 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 8591 encoder: h264: Add support of low power/high performance encoding mode 8592 Added a new property "low-power-enc" for enabling low power 8593 encoding mode. Certain encoding tools may not be available 8594 with the VAEntrypointEncSliceLP. 8595 https://bugzilla.gnome.org/show_bug.cgi?id=766050 8596 85972016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8598 8599 * gst-libs/gst/vaapi/gstvaapitypes.h: 8600 * gst-libs/gst/vaapi/gstvaapiutils.c: 8601 * gst-libs/gst/vaapi/gstvaapivalue.c: 8602 Add mapping for Macroblock level rate control (VA_RC_MB) 8603 86042016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8605 8606 * gst-libs/gst/vaapi/gstvaapidisplay.c: 8607 gstvaapidisplay: Add VAEntrypointEncSliceLP support 8608 https://bugzilla.gnome.org/show_bug.cgi?id=766050 8609 86102016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8611 8612 * gst-libs/gst/vaapi/gstvaapiprofile.c: 8613 * gst-libs/gst/vaapi/gstvaapiprofile.h: 8614 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions 8615 This is for implementations that supports low_power/high_performance 8616 variant for slice level encode. 8617 https://bugzilla.gnome.org/show_bug.cgi?id=766050 8618 86192016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8620 8621 * gst/vaapi/gstvaapipostprocutil.c: 8622 vaapipostproc: negotiate frame size fixation 8623 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only 8624 using the sink caps, also it use the next capsfilter. 8625 This code is a shameless copy of gst_video_scale_fixate_caps() from 8626 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634 8627 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8628 86292016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com> 8630 8631 * gst/vaapi/gstvaapipostprocutil.c: 8632 vaapipostproc: don't use GstVideoInfo for src caps 8633 Instead of using gst_video_info_to_caps () to generated the fixed src caps, 8634 this patch enables the first step for caps negotiation with a possible 8635 following caps filter. 8636 _get_preferred_caps() will traverse the possible src caps looking for the one 8637 wit the preferred feature and the preferred color format. Then the color 8638 format, the frame size and the frame rate are fixated. 8639 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8640 86412016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8642 8643 * gst/vaapi/gstvaapipostproc.c: 8644 * gst/vaapi/gstvaapipostprocutil.c: 8645 * gst/vaapi/gstvaapipostprocutil.h: 8646 vaapipostproc: move gst_vaapipostproc_fixate_srccaps() 8647 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil. 8648 No functional changes. 8649 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8650 86512016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8652 8653 * gst/vaapi/gstvaapipostproc.c: 8654 vaapipostproc: simplify code 8655 Change a convoluted snippet to find the preferred color format in the peer 8656 caps. 8657 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8658 86592016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8660 8661 * gst/vaapi/gstvaapipostproc.c: 8662 vaapipostproc: use othercaps for preferred caps 8663 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps 8664 from fixate_caps() vmethod to find the preferred caps feature and color 8665 format. 8666 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8667 86682016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com> 8669 8670 * gst/vaapi/gstvaapipostproc.c: 8671 vaapipostproc: add fixate_caps() vmethod 8672 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch 8673 implements the fixate_caps() vmethod and moves code around. 8674 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8675 86762016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8677 8678 * gst/vaapi/Makefile.am: 8679 * gst/vaapi/gstvaapipostproc.c: 8680 * gst/vaapi/gstvaapipostprocutil.c: 8681 * gst/vaapi/gstvaapipostprocutil.h: 8682 vaapipostproc: set early properties restrictions 8683 When running transform_caps() vmethod, returning the srcpad caps, the caps are 8684 early restricted to the element properties set: width, height, format and 8685 force keep aspect. 8686 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions 8687 are stored. 8688 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8689 86902016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8691 8692 * gst/vaapi/gstvaapipostproc.c: 8693 vaapipostproc: log the caps transformation 8694 https://bugzilla.gnome.org/show_bug.cgi?id=758548 8695 86962016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8697 8698 * gst/vaapi/gstvaapipostproc.c: 8699 vaapipostproc: no GLTextureUpload in sinkpad 8700 As the vaapipostproc does not process frames with the VideoGLTextureUpload 8701 meta, the feature is removed from the sink pad template. 8702 https://bugzilla.gnome.org/show_bug.cgi?id=765931 8703 87042015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com> 8705 8706 * gst/vaapi/gstvaapivideobufferpool.c: 8707 vaapibufferpool: do not create texture upload meta if dmabuf 8708 https://bugzilla.gnome.org/show_bug.cgi?id=755072 8709 87102016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8711 8712 * git.mk: 8713 build: update git.mk 8714 87152016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8716 8717 * gst/vaapi/gstvaapipluginbase.h: 8718 plugin: fix macro processor check 8719 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always 8720 defined in config.h, but it would be 0 or 1 depending on the configure output. 8721 https://bugzilla.gnome.org/show_bug.cgi?id=765702 8722 87232016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8724 8725 * tests/test-display.c: 8726 tests: display: guard possible unused variables 8727 https://bugzilla.gnome.org/show_bug.cgi?id=765702 8728 87292016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8730 8731 * tests/codec.c: 8732 * tests/decoder.c: 8733 * tests/image.c: 8734 * tests/output.c: 8735 * tests/simple-decoder.c: 8736 * tests/test-decode.c: 8737 * tests/test-display.c: 8738 * tests/test-filter.c: 8739 * tests/test-h264.c: 8740 * tests/test-jpeg.c: 8741 * tests/test-mpeg2.c: 8742 * tests/test-mpeg4.c: 8743 * tests/test-subpicture-data.c: 8744 * tests/test-subpicture.c: 8745 * tests/test-surfaces.c: 8746 * tests/test-textures.c: 8747 * tests/test-vc1.c: 8748 * tests/test-windows.c: 8749 tests: inforce gstreamer code-style 8750 87512016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8752 8753 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 8754 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR 8755 It seems driver requires enablement of cu_qp_delta_enabled_flag 8756 for modifying QP values to controll the CBR mode bitrate. 8757 https://bugzilla.gnome.org/show_bug.cgi?id=749852 8758 87592016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 8760 8761 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 8762 encoder: h265: Add CBR Encoding support 8763 https://bugzilla.gnome.org/show_bug.cgi?id=749852 8764 87652015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com> 8766 8767 * gst-libs/gst/vaapi/gstvaapisurface.c: 8768 gstvaapisurface: explicitely clear TILING flag if dmabuf 8769 https://bugzilla.gnome.org/show_bug.cgi?id=755072 8770 87712015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com> 8772 8773 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 8774 gstvaapisurface_drm: release image when done 8775 Otherwise intel-vaapi-driver will fail to process the exported surface because 8776 it will find it is currently derived, so considered as busy. 8777 https://bugzilla.gnome.org/show_bug.cgi?id=755072 8778 87792015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com> 8780 8781 * gst/vaapi/gstvaapipostproc.c: 8782 vaapipostproc: already have a surface proxy if dmabuf 8783 https://bugzilla.gnome.org/show_bug.cgi?id=755072 8784 87852016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com> 8786 8787 * gst/vaapi/gstvaapipostproc.c: 8788 various gst-indent 8789 87902016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8791 8792 * gst/vaapi/gstvaapidecode.c: 8793 * gst/vaapi/gstvaapipluginbase.c: 8794 * gst/vaapi/gstvaapipluginbase.h: 8795 vaapidecode: search driver in whitelist 8796 If the backend driver vendor string is not in a white-list, and the 8797 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will 8798 change it state from NULL to READY, hence the auto-plug mechanism will look 8799 for another decoder. 8800 This patch assumes the GstContext has already being shared along the pipeline 8801 and the element has a valid GstVaapiDisplay instance. 8802 https://bugzilla.gnome.org/show_bug.cgi?id=764673 8803 88042016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8805 8806 * gst/vaapi/gstvaapidecode.c: 8807 * gst/vaapi/gstvaapiencode.c: 8808 * gst/vaapi/gstvaapipluginbase.c: 8809 * gst/vaapi/gstvaapipluginbase.h: 8810 * gst/vaapi/gstvaapipostproc.c: 8811 * gst/vaapi/gstvaapisink.c: 8812 plugins: rework set_context() vmethod definition 8813 In bug 757598 was added the set_context() vmethod chain up in 8814 GstVaapiPluginBase. But it is buggy, since the parent_class address is 8815 assigned to the last element which called gst_vaapi_plugin_base_class_init(). 8816 No error has shown up since none of the element's base classes redefined 8817 set_context() vmethod from GstElement, so always the correct function was 8818 called. Still this code is wrong and this patch make it right. 8819 Since set_context() is the same code, a macro is used to implement that code 8820 in all the gst-vaapi elements. 8821 https://bugzilla.gnome.org/show_bug.cgi?id=765368 8822 88232016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8824 8825 * gst/vaapi/gstvaapipostproc.c: 8826 vaapipostproc: resize if negotiated and allocation caps are different 8827 Since commit 859a2b2, in vaapidecode, allocation query can be different from 8828 the negotiated caps. 8829 When connecting the vaapidecoder to the vaapipostprocessor, the last one will 8830 resize the frame to the negotiated, if and only if, some other parameter is 8831 activated to avoid the passthrough. If it is not, the surface won't be mapped 8832 into a image. If not, the image won't be resized and the output buffer would be 8833 mapped. 8834 This patch will break the passthrough if the allocation query is different 8835 from the negotiation caps, forcing the resizing. 8836 https://bugzilla.gnome.org/show_bug.cgi?id=765095 8837 88382016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8839 8840 * gst/vaapi/gstvaapidecode.c: 8841 vaapidecode: improve code readability 8842 No functional changes. 8843 88442016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8845 8846 * gst/vaapi/gstvaapidecode.c: 8847 vaapidecode: move GstCapsFeatures near to its use 8848 Move the handling of the GstCapsFeatures just after it is used, in order to 8849 avoid handling its memory. 8850 88512016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8852 8853 * gst/vaapi/gstvaapidecode.c: 8854 vaapidecode: caps negotiation checks 8855 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not 8856 compiled with GL support. 8857 88582016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8859 8860 * gst/vaapi/gstvaapidecode.c: 8861 * gst/vaapi/gstvaapipluginbase.c: 8862 * gst/vaapi/gstvaapipluginbase.h: 8863 * gst/vaapi/gstvaapipostproc.c: 8864 plugins: remove param in gst_vaapi_plugin_base_decide_allocation() 8865 88662016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8867 8868 * gst/vaapi/gstvaapidecode.c: 8869 vaapidecode: bail early if not caps in decide_allocation() 8870 88712016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8872 8873 * gst/vaapi/gstvaapidecode.c: 8874 * gst/vaapi/gstvaapipluginbase.c: 8875 * gst/vaapi/gstvaapipluginutil.c: 8876 * gst/vaapi/gstvaapipluginutil.h: 8877 * gst/vaapi/gstvaapipostproc.c: 8878 plugin: use allowed caps filter from element 8879 Instead of using the srcpad template caps for filtering the peer caps, the 8880 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter 8881 for the element's allowed caps. 8882 With this modification, the vaapipostproc element simplifies a bit its code. 8883 https://bugzilla.gnome.org/show_bug.cgi?id=765223 8884 88852016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8886 8887 * gst/vaapi/gstvaapidecode.c: 8888 * gst/vaapi/gstvaapipluginbase.c: 8889 * gst/vaapi/gstvaapipluginutil.c: 8890 * gst/vaapi/gstvaapipluginutil.h: 8891 * gst/vaapi/gstvaapipostproc.c: 8892 plugin: remove function parameter 8893 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be 8894 saved if the out format is used for both: in and out. Thus the code is more 8895 readable. 8896 https://bugzilla.gnome.org/show_bug.cgi?id=765223 8897 88982016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8899 8900 * gst/vaapi/gstvaapidecode.c: 8901 vaapidecode: warns if driver will do color conversions 8902 If the downstream feature is system memory, the surface has to be mapped, 8903 hence a warning message is logged saying that the driver has to do color 8904 conversions. This might be troublesome because not all the color conversion 8905 combinations are supported by the VA-API drivers, and there is not a reliable 8906 way to know them before hand. 8907 https://bugzilla.gnome.org/show_bug.cgi?id=765223 8908 89092016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8910 8911 * gst/vaapi/gstvaapipluginutil.c: 8912 plugin: honour negotiated format 8913 Instead of setting the requested format by the caller, the function 8914 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter, 8915 the negotiated format. 8916 A new helper function was added: gst_vaapi_find_preferred_format(), which, 8917 given the format list from the negotiated caps, will choose the best one, if 8918 possible, given the native format. 8919 https://bugzilla.gnome.org/show_bug.cgi?id=765223 8920 89212016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8922 8923 * gst/vaapi/gstvaapipluginutil.c: 8924 plugin: simplify caps feature selection 8925 This patch simplifies the function gst_vaapi_find_preferred_caps_feature(). 8926 Instead of intersecting custom caps to find the preferred feature, the peer 8927 caps are traversed in order to find the preferred feature, according to an 8928 ordered feature priority list. 8929 In the case of GLTextureUploadMeta, the colour format is computed using 8930 GstVideoInfo of the selected fixed caps. 8931 https://bugzilla.gnome.org/show_bug.cgi?id=765223 8932 89332016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8934 8935 * gst/vaapi/gstvaapidecode.c: 8936 vaapidecode: use macros for GstVideoInfo 8937 Instead of accessing directly to the members of the structure, use the macros. 8938 89392016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8940 8941 * gst/vaapi/gstvaapidecode.c: 8942 vaapidecode: refactor is_display_resolution_changed() 8943 Make the comparisons more readable and simple. 8944 https://bugzilla.gnome.org/show_bug.cgi?id=764316 8945 89462016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8947 8948 * gst/vaapi/gstvaapidecode.c: 8949 * gst/vaapi/gstvaapidecode.h: 8950 vaapidecode: keep only display_{width,height} 8951 Instead of keeping the structure GstVideoInfo when we are using its width and 8952 height, we only keep these two guints. 8953 https://bugzilla.gnome.org/show_bug.cgi?id=764316 8954 89552016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8956 8957 * gst/vaapi/gstvaapidecode.c: 8958 vaapidecode: decoded_info is valid at src caps update 8959 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps() 8960 is called, then we don't need to verify or replace it with the sinkpad info 8961 (reference state). 8962 https://bugzilla.gnome.org/show_bug.cgi?id=764316 8963 89642016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8965 8966 * gst/vaapi/gstvaapidecode.c: 8967 vaapidecode: always a valid format in decoded_info 8968 Always set a valid format in decoded_info class variable. 8969 https://bugzilla.gnome.org/show_bug.cgi?id=764316 8970 89712016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8972 8973 * gst/vaapi/gstvaapidecode.c: 8974 vaapidecode: code style fixes 8975 No functional changes. 8976 https://bugzilla.gnome.org/show_bug.cgi?id=764316 8977 89782016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8979 8980 * gst/vaapi/gstvaapidecode.c: 8981 vaapidecode: init {decoded,display}_info at open() 8982 It is required to initialize {decoded,display}_info variables when the decoder 8983 is open, not only at instance initialization. 8984 https://bugzilla.gnome.org/show_bug.cgi?id=764316 8985 89862016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8987 8988 * gst/vaapi/gstvaapidecode.c: 8989 * gst/vaapi/gstvaapidecode.h: 8990 vaapidecode: remove spurious class variables 8991 active, do_pool_renego and do_outstate_renego class variables were used to 8992 indicate when negotiate downstream once, but now that each time a new surface 8993 resolution is pop out a renegotation verified, these variable are not required 8994 anymore. 8995 https://bugzilla.gnome.org/show_bug.cgi?id=764316 8996 89972016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 8998 8999 * gst/vaapi/gstvaapidecode.c: 9000 * gst/vaapi/gstvaapipluginbase.c: 9001 * gst/vaapi/gstvaapipluginbase.h: 9002 * gst/vaapi/gstvaapipostproc.c: 9003 remove custom allocation query 9004 When resolving bug 753914, a custom allocation query was added, overlapping 9005 the responsibilities of GstVideoDecoder. 9006 But with the merge of the patches from bug 764421 this overlapping was not 9007 required anymore. This patch restores this situation setting the 9008 allocation_caps in the GstVideoCodecState when needed. 9009 https://bugzilla.gnome.org/show_bug.cgi?id=764316 9010 90112016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com> 9012 9013 * common: 9014 Automatic update of common submodule 9015 From 6f2d209 to ac2f647 9016 90172016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9018 9019 * gst/vaapi/gstvaapidecode.c: 9020 * gst/vaapi/gstvaapidecodebin.c: 9021 * gst/vaapi/gstvaapipostproc.c: 9022 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX 9023 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in 9024 their caps templates if they were not compiled either with GLX or EGL support. 9025 90262016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9027 9028 * gst/vaapi/gstvaapipluginutil.c: 9029 plugins: fix compilation when EGL/GLX is disabled 9030 The compiler might complain of gst_vaapi_create_display_from_handle() being 9031 unused if both EGL and GLX are disabled. This patch avoid that compilation 9032 error. 9033 90342016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de> 9035 9036 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: 9037 libs: fix deleting a GstVaapiCodedBufferPool object 9038 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize(). 9039 Otherwise it is not called when the pool is destroyed and all objects 9040 referenced by the GstVaapiVideoPool are never released. 9041 https://bugzilla.gnome.org/show_bug.cgi?id=764993 9042 90432016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9044 9045 * gst-libs/gst/vaapi/gstvaapisurface.c: 9046 surface: destroy derived image 9047 If gst_vaapi_image_new_with_image() fails, the created derived image should be 9048 destroyed, otherwise the surface cannot be processed because is being used. 9049 https://bugzilla.gnome.org/show_bug.cgi?id=764607 9050 90512016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com> 9052 9053 * gst/vaapi/gstvaapidecode.c: 9054 vaapidecode: add stop function 9055 Clear any status on the current stream: 9056 stored frames, caps and decoder configuration 9057 https://bugzilla.gnome.org/show_bug.cgi?id=763460 9058 90592016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9060 9061 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 9062 decoder: vp9: Align with the ABI changes in vp9 codecparser 9063 The subsampling_x, subsampling_y, bit_depth, color_space and color_range 9064 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure. 9065 These fields are only present in keyframe or intra-only frame, no need to 9066 duplicate them for inter-frames. 9067 https://bugzilla.gnome.org/show_bug.cgi?id=764082 9068 90692016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9070 9071 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 9072 decoder: vp9 : Add 10bit decoding support (Profile2) 9073 https://bugzilla.gnome.org/show_bug.cgi?id=764082 9074 90752016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9076 9077 * gst-libs/gst/vaapi/gstvaapiprofile.c: 9078 * gst-libs/gst/vaapi/gstvaapiprofile.h: 9079 gstvaapiporfile: Add more VP9 profile definitions 9080 https://bugzilla.gnome.org/show_bug.cgi?id=764082 9081 90822016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9083 9084 * Makefile.am: 9085 * configure.ac: 9086 build: possibility to disable tests 9087 The configuration option --disable-examples will disable the compilation of 9088 the sample apps in tests/ directory. 9089 90902016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9091 9092 * gst/vaapi/gstvaapiencode_h264.c: 9093 * gst/vaapi/gstvaapiencode_h265.c: 9094 * gst/vaapi/gstvaapiencode_jpeg.c: 9095 * gst/vaapi/gstvaapiencode_mpeg2.c: 9096 * gst/vaapi/gstvaapiencode_vp8.c: 9097 * gst/vaapi/gstvaapipluginutil.h: 9098 * gst/vaapi/gstvaapisink.c: 9099 unify caps template for VAAPI encoders and decoders 9100 There is no difference in VAAPI surface caps between encoders and decoders. 9101 Thus, the patch makes a simplification by removing encoders specific caps and 9102 shares the same definition of VAAPI surfaces caps for all the elements. 9103 91042016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9105 9106 * gst/vaapi/gstvaapidecode.c: 9107 vaapidecode: move gst_vaapidecode_negotiate() code 9108 With it we can remove a function declaration, making the code a bit 9109 more readable. 9110 https://bugzilla.gnome.org/show_bug.cgi?id=764316 9111 91122016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9113 9114 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: 9115 * docs/plugins/gstreamer-vaapi-plugins-sections.txt: 9116 * gst/vaapi/gstvaapidecode.c: 9117 docs: generate vaapijpegdec documentation 9118 https://bugzilla.gnome.org/show_bug.cgi?id=764314 9119 91202016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9121 9122 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 9123 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data 9124 The array_completeness, reserved bit and num_nal_units fields 9125 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list, 9126 but not for each occurance of similar headers. 9127 https://bugzilla.gnome.org/show_bug.cgi?id=764274 9128 91292016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9130 9131 * gst-libs/gst/vaapi/video-format.c: 9132 video-format: Keep the HW order preference while mapping to GstVideoFormats 9133 91342016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9135 9136 * gst/vaapi/gstvaapidecode.c: 9137 * gst/vaapi/gstvaapipluginbase.c: 9138 * gst/vaapi/gstvaapipluginutil.c: 9139 * gst/vaapi/gstvaapipluginutil.h: 9140 * gst/vaapi/gstvaapivideomemory.c: 9141 gst/vaapi: keep precedence for NV12 over I420 9142 Use NV12 as default "assumption" format all over. 9143 NV12 is the default high priority format used my most of the 9144 vaapi-drivers. 9145 91462016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9147 9148 * gst/vaapi/gstvaapidecode.c: 9149 vaapidecode: Use video format derived from decoded surface as default src pad format 9150 Use the surface format derived from first decoded surface 9151 to negotiate the downstream video format capabilities. 9152 https://bugzilla.gnome.org/show_bug.cgi?id=759181 9153 91542016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com> 9155 9156 * gst-libs/gst/vaapi/gstvaapiimage.c: 9157 * gst-libs/gst/vaapi/video-format.c: 9158 * gst/vaapi/gstvaapidecode.c: 9159 * gst/vaapi/gstvaapipluginutil.h: 9160 * gst/vaapi/gstvaapisink.c: 9161 Add P010 video format support 9162 The P010 video format is the native format used by the vaapi intel driver 9163 for HEVCMain10 decode . Add support for planes and images of this video format. 9164 https://bugzilla.gnome.org/show_bug.cgi?id=759181 9165 91662016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com> 9167 9168 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 9169 libs: x11: allows 30-bit colour depth 9170 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this 9171 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual 9172 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything 9173 work as expected. 9174 https://bugzilla.gnome.org/show_bug.cgi?id=764256 9175 91762016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9177 9178 * gst/vaapi/gstvaapivideometa_texture.c: 9179 gltextureupload: use an array for texture type 9180 Instead of using a single value for the texture type, use an array with 4 9181 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer 9182 overflow. 9183 https://bugzilla.gnome.org/show_bug.cgi?id=764231 9184 91852016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9186 9187 * gst/vaapi/gstvaapidecode.c: 9188 * gst/vaapi/gstvaapipluginbase.c: 9189 vaapidecode: Fix decide_allocation handling 9190 Set the already configured pool in decide_allocation query 9191 in cases where pool renegotiation is not required. 9192 https://bugzilla.gnome.org/show_bug.cgi?id=753914 9193 91942016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9195 9196 * gst/vaapi/gstvaapidecode.c: 9197 vaapidecode: Derive and save the decoded surface format 9198 After the decoding of first frame, try to extract the exact 9199 decoded surface format using vaDeriveImage and keep this 9200 as the format in decoded_info. 9201 https://bugzilla.gnome.org/show_bug.cgi?id=753914 9202 92032016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9204 9205 * gst/vaapi/gstvaapidecode.c: 9206 * gst/vaapi/gstvaapidecode.h: 9207 * gst/vaapi/gstvaapipluginbase.c: 9208 * gst/vaapi/gstvaapipluginbase.h: 9209 * gst/vaapi/gstvaapipostproc.c: 9210 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed 9211 -- Maintaing decoded surface resoluton and actual display resoultion separately 9212 -- Before pushing every frames downstream, check for the requirement of pool negoation and 9213 output_state negotiation: This is needed to avoid multiple issuses with cropping, 9214 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode, 9215 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons, 9216 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too. 9217 This is slight overhead, but safe enough. Optimization could be possible though. 9218 https://bugzilla.gnome.org/show_bug.cgi?id=753914 9219 92202016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9221 9222 * gst/vaapi/gstvaapidecode.c: 9223 vaapidecode: Delay the output format setting until we have a decoded surface 9224 This will help to consoidate the out caps negotiation to a single place, 9225 which will make the code simpler, allows to get the exact decoded format 9226 if needed and the selected chroma type too. 9227 https://bugzilla.gnome.org/show_bug.cgi?id=753914 9228 92292016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9230 9231 * gst/vaapi/gstvaapidecode.h: 9232 vaapidecode: GST_VAAPIDECODE macro is a cast 9233 This patch is the continuation of commit 1e1d3b1d because the function 9234 gst_vaapidecode_get_type() got undefined since then. 9235 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode 9236 structure. The rest of the GObject handling macros were deleted too. 9237 92382016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com> 9239 9240 * configure.ac: 9241 Back to development 9242 9243=== release 1.8.0 === 9244 92452016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com> 9246 9247 * ChangeLog: 9248 * NEWS: 9249 * configure.ac: 9250 * gstreamer-vaapi.doap: 9251 Release 1.8.0 9252 9253=== release 1.7.91 === 9254 92552016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com> 9256 9257 * ChangeLog: 9258 * NEWS: 9259 * configure.ac: 9260 * gstreamer-vaapi.doap: 9261 Release 1.7.91 9262 92632016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9264 9265 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 9266 decoder: h265: Fix offset calculation in codec_data parsing 9267 https://bugzilla.gnome.org/show_bug.cgi?id=762922 9268 92692016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9270 9271 * gst/vaapi/gstvaapidecodebin.c: 9272 vaapidecodebin: don't handle jpeg decoding 9273 As JPEG decoder has been split and demoted, it cannot be handled by 9274 vaapidecodebin 9275 Added a fixme comment regarding the future removal of vaapidecode. 9276 https://bugzilla.gnome.org/show_bug.cgi?id=734093 9277 92782016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9279 9280 * gst/vaapi/gstvaapidecode.c: 9281 vaapidecode: split out jpeg decoder 9282 Split, as a different element, the JPEG decoder. 9283 https://bugzilla.gnome.org/show_bug.cgi?id=734093 9284 92852016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9286 9287 * gst/vaapi/gstvaapi.c: 9288 * gst/vaapi/gstvaapidecode.c: 9289 * gst/vaapi/gstvaapidecode.h: 9290 vaapidecode: register decoder with internal GType 9291 Don't expose the the vaapidecode GType, instead expose a function 9292 which will register element. 9293 This is the first step to split the decoder by codecs. 9294 https://bugzilla.gnome.org/show_bug.cgi?id=734093 9295 92962016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9297 9298 * gst/vaapi/gstvaapidecode.c: 9299 vaapidecode: remove unused function declaration 9300 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed 9301 code-style of the other pre-declared functions. 9302 93032016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9304 9305 * docs/plugins/Makefile.am: 9306 build: git ignore gtkdoc generated files 9307 93082016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9309 9310 * m4/Makefile.am: 9311 build: handle git ignore in m4 directory 9312 93132016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com> 9314 9315 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 9316 vaapidecoder_h265: plug leak of h265 parsing info 9317 If something goes wrong while parsing, the info object is 9318 being leaked 9319 https://bugzilla.gnome.org/show_bug.cgi?id=763121 9320 93212016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com> 9322 9323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 9324 vaapidecoder_h264: plug leak of h264 parsing info 9325 If something goes wrong while parsing, the info object is 9326 being leaked 9327 https://bugzilla.gnome.org/show_bug.cgi?id=763121 9328 93292016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com> 9330 9331 * gst/vaapi/gstvaapipluginutil.c: 9332 plugins: fix gstgl and vaapi memory leaks 9333 1\ Unref gl_display and gl_window as soon they are not needed. 9334 2\ Remove an unneeded display type check, since is handled by 9335 gst_vaapi_created_display_from_handle() 9336 3\ Unref vaapi's display if the display cannot be bind to a GL API. 9337 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9338 https://bugzilla.gnome.org/show_bug.cgi?id=763354 9339 93402016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com> 9341 9342 * gst-libs/gst/vaapi/gstvaapidisplay.c: 9343 vaapidisplay: Fix uninitialized value error for VA attribute 9344 https://bugzilla.gnome.org/show_bug.cgi?id=763362 9345 93462016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9347 9348 * gst/vaapi/gstvaapidecode.c: 9349 * gst/vaapi/gstvaapiencode.c: 9350 plugins: proxy information from downstream caps 9351 Propagate to upstream the downstream information, such as fps, par, etc. 9352 This will fix several "getcaps" critical warnings in gst-validate. 9353 https://bugzilla.gnome.org/show_bug.cgi?id=763300 9354 93552016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9356 9357 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 9358 decoder: vp9: Assign values for profile and bit_depth from frame header 9359 bit_depth field has added only in VA-API 0.39.0, added version check. 9360 93612016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com> 9362 9363 * Makefile.am: 9364 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh 9365 https://bugzilla.gnome.org/show_bug.cgi?id=763067 9366 9367=== release 1.7.90 === 9368 93692016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com> 9370 9371 * ChangeLog: 9372 * NEWS: 9373 * configure.ac: 9374 * gstreamer-vaapi.doap: 9375 Release 1.7.90 9376 93772016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com> 9378 9379 * configure.ac: 9380 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date 9381 93822016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9383 9384 * gst/vaapi/gstvaapidecode.c: 9385 vaapidecode: intersect with filter in getcaps() 9386 In commit 6034734d I forgot to add the caps filter intersection in the 9387 getcaps() vmethod generating a regression when a capsfilter is set in the 9388 pipeline. 9389 This commit adds the caps filter intersection. 9390 93912016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com> 9392 9393 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 9394 Add memset to initialize value for VAEncSliceParameterBufferJPEG 9395 https://bugzilla.gnome.org/show_bug.cgi?id=762850 9396 93972016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com> 9398 9399 * common: 9400 Automatic update of common submodule 9401 From b64f03f to 6f2d209 9402 94032016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9404 9405 * Makefile.am: 9406 * configure.ac: 9407 * m4/Makefile.am: 9408 build: add m4 directory 9409 Instead of rely on the automatic creation of m4 directory by aclocal, we 9410 already control it. Later we could create our own m4 scripts in order to 9411 unclutter configure.ac 9412 https://bugzilla.gnome.org/show_bug.cgi?id=762528 9413 94142016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com> 9415 9416 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 9417 decoder: hevc: Fill dependent slice segment headers while parsing 9418 Copy the data into the dependent slice segment header from the 9419 corresponding independent slice segment header during parsing. 9420 Previously the reference to the "previous" independent header was 9421 held through the parsing phase and then dereferenced during the 9422 decoding phase. This caused all dependent headers to be populated 9423 with the data of the AU's last independent header instead of the 9424 proper corresponding header. 9425 https://bugzilla.gnome.org/show_bug.cgi?id=762352 9426 Changes since v1: 9427 - Reworded commit message 9428 94292016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9430 9431 * gst/vaapi/gstvaapidecode.c: 9432 vaapidecode: use video decoder getcaps() 9433 The usage of getcaps() vmethod is preferred than to handle manually the sink's 9434 caps query. 9435 In order to avoid function declarations, this patch moves the class_init() 9436 method to the end of the file. 9437 94382016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9439 9440 * gst/vaapi/gstvaapipluginbase.c: 9441 plugins: remove deprecated code 9442 Since we are only supporting current GStreamer version, since 1.3 9443 gst_buffer_pool_config_add_option() checks if the option to add is 9444 already set. There is no need to do it ourselves. 9445 94462016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com> 9447 9448 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 9449 vaapidecoder_h265: fix parsing of NALU aligned data 9450 Don't assume the whole buffer is a single NAL, instead look for the 9451 next start code in case there are multiple NALs per buffer. 9452 https://bugzilla.gnome.org/show_bug.cgi?id=762328 9453 94542016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com> 9455 9456 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 9457 vaapidecoder_h264: fix parsing of NALU aligned data 9458 Don't assume the whole buffer is a single NAL, instead look for the 9459 next start code in case there are multiple NALs per buffer. 9460 https://bugzilla.gnome.org/show_bug.cgi?id=762328 9461 94622016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com> 9463 9464 * gst/vaapi/gstvaapisink.c: 9465 vaapisink: Fix event,pad,structure memory leaks 9466 https://bugzilla.gnome.org/show_bug.cgi?id=762229 9467 94682016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com> 9469 9470 * gst/vaapi/gstvaapipluginbase.c: 9471 Add icamerasrc as dmabuf capable peer element 9472 icamerasrc is another gstreamer plugin using to capture RAW 9473 frames from camera device. It is based on libcamhal library. 9474 There are some properties available to control icamera behavior. 9475 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> 9476 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com> 9477 https://bugzilla.gnome.org/show_bug.cgi?id=759481 9478 Fixme: This is the similar workaround we done for v4l2src. 9479 The workaround will be removed once we fix #755072 9480 94812016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com> 9482 9483 * gst/vaapi/gstvaapipluginbase.c: 9484 vaapipluginbase: Fix structure memory leak 9485 config structure is not being freed in all cases 9486 https://bugzilla.gnome.org/show_bug.cgi?id=762172 9487 94882016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com> 9489 9490 * gst/vaapi/gstvaapidecode.c: 9491 vaapidecode: Fix videocodec state memory leak 9492 When state is not NULL and either width/height of video info is 0, then state leaks 9493 https://bugzilla.gnome.org/show_bug.cgi?id=762173 9494 94952016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com> 9496 9497 * gst/vaapi/gstvaapisink.c: 9498 vaapisink: post message for application for unhandled keyboard/mouse events 9499 Makes (most) keyboard shortcuts work in gst-play-1.0 when 9500 the video window has focus. 9501 95022016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com> 9503 9504 * gst/vaapi/gstvaapidecode.c: 9505 vaapidecode: Fix capsfeature memory leak 9506 https://bugzilla.gnome.org/show_bug.cgi?id=762116 9507 95082016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com> 9509 9510 * gst/vaapi/gstvaapisink.c: 9511 vaapisink: Fix capsfeature memory leak 9512 caps feature allocated is not being freeing in some cases 9513 https://bugzilla.gnome.org/show_bug.cgi?id=762111 9514 95152016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com> 9516 9517 * configure.ac: 9518 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 9519 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 9520 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 9521 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 9522 * gst-libs/gst/vaapi/gstvaapifilter.c: 9523 * gst/vaapi/gstvaapidecodebin.c: 9524 * gst/vaapi/gstvaapipluginutil.c: 9525 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now 9526 95272016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com> 9528 9529 * configure.ac: 9530 configure: Fix setting of extra compiler warning flags 9531 95322016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9533 9534 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 9535 libs: fix build error 9536 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class} 9537 functions are used only when libva's API version is greater than 0.36.0 9538 This patch guards those functions completely rather than just their 9539 content. The patch is a continuation of commit 38f8fea4 9540 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com> 9541 https://bugzilla.gnome.org/show_bug.cgi?id=762055 9542 95432016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com> 9544 9545 * tests/simple-encoder.c: 9546 tests: simple-encoder: fix build error 9547 argument mismatch of gsize with 'long unsigned int' 9548 https://bugzilla.gnome.org/show_bug.cgi?id=762055 9549 95502016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9551 9552 * gst/vaapi/gstvaapisink.c: 9553 vaapisink: Fix wrong caps advertising 9554 The get_caps() should only report the supported formats. 9555 https://bugzilla.gnome.org/show_bug.cgi?id=761147 9556 95572016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com> 9558 9559 * common: 9560 Automatic update of common submodule 9561 From e97c9bb to b64f03f 9562 95632016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9564 9565 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: 9566 * docs/plugins/gstreamer-vaapi-plugins-sections.txt: 9567 * gst/vaapi/gstvaapi.c: 9568 * gst/vaapi/gstvaapiencode_h264.c: 9569 * gst/vaapi/gstvaapiencode_h265.c: 9570 * gst/vaapi/gstvaapiencode_jpeg.c: 9571 * gst/vaapi/gstvaapiencode_mpeg2.c: 9572 * gst/vaapi/gstvaapiencode_vp8.c: 9573 rename encoders to vaapi{codec}enc 9574 Trying to comply with GStreamer's element names, this patch renames the 9575 encoders using the name format vaapi{codec}enc. 9576 In this way, the plugin documentation is linked correctly. 9577 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9578 95792016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9580 9581 * configure.ac: 9582 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define 9583 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9584 95852016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9586 9587 * configure.ac: 9588 build: remove vp9 parser check 9589 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely 9590 the check of the parser, as we did for the others. 9591 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9592 95932016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9594 9595 * common: 9596 * configure.ac: 9597 Back to development 9598 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9599 9600=== release 1.6.0 === 9601 96022016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9603 9604 * configure.ac: 9605 Release 1.6.0 9606 96072016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9608 9609 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 9610 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 9611 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 9612 libs: fix compiler warnings 9613 After setting the release flags, the compiler warns about a couple 9614 initialized variables. 9615 Also marked a couple of set variables as unused, because they are only 9616 used for assertion. 9617 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9618 96192016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9620 9621 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: 9622 * docs/plugins/gstreamer-vaapi-plugins-sections.txt: 9623 * gst/vaapi/gstvaapidecode.c: 9624 * gst/vaapi/gstvaapidecodebin.c: 9625 * gst/vaapi/gstvaapiencode_h264.c: 9626 * gst/vaapi/gstvaapiencode_h265.c: 9627 * gst/vaapi/gstvaapiencode_jpeg.c: 9628 * gst/vaapi/gstvaapiencode_mpeg2.c: 9629 * gst/vaapi/gstvaapiencode_vp8.c: 9630 * gst/vaapi/gstvaapipostproc.c: 9631 * gst/vaapi/gstvaapisink.c: 9632 docs: update plugin documentation 9633 Update all the documentation of elements of the vaapi plugin. 9634 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9635 96362016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9637 9638 * Makefile.am: 9639 * configure.ac: 9640 * docs/Makefile.am: 9641 * docs/plugins/Makefile.am: 9642 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in: 9643 * docs/plugins/gstreamer-vaapi-plugins.types: 9644 * docs/reference/Makefile.am: 9645 * docs/reference/plugins/Makefile.am: 9646 * docs/reference/plugins/plugins-sections.txt: 9647 * docs/reference/plugins/plugins.types: 9648 * docs/version.entities.in: 9649 resurrect gtk-doc machinery 9650 Our auto-generated documentation has been a bit neglected. This patch replaces 9651 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for 9652 plugins, elements and libraries. 9653 This patch also re-enables documentation generation. 9654 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9655 96562016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9657 9658 * ChangeLog: 9659 * Makefile.am: 9660 * autogen.sh: 9661 * configure.ac: 9662 use gst-common submodule 9663 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official 9664 GStreamer common submodule. 9665 The documentation generation has been disable temporarily since it needs a 9666 major rework, which will be done in the following commit. 9667 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9668 96692016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9670 9671 * .gitmodules: 9672 * common: 9673 add gst-common submodule 9674 Pointing to branch 1.6 9675 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9676 96772016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9678 9679 * gstreamer-vaapi.doap: 9680 add doap descriptor 9681 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to 9682 describe software projects, in particular free and open source software. 9683 The description is used in GStreamer as in many other open source projects. 9684 This patch adds the doap description of this project. 9685 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9686 96872016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9688 9689 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 9690 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 9691 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 9692 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 9693 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 9694 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 9695 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 9696 * gst-libs/gst/vaapi/gstvaapiimage.c: 9697 * gst-libs/gst/vaapi/gstvaapiparser_frame.c: 9698 * gst-libs/gst/vaapi/gstvaapipixmap.c: 9699 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: 9700 * gst-libs/gst/vaapi/gstvaapiprofile.c: 9701 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 9702 libs: humongous code style fix 9703 As part of the upstreaming process of gstreamer-vaapi into the GStreamer 9704 umbrella, we need to comply with the project's code style. This meant to 9705 change a lot of code. 9706 It was decided to use a single massive patch to update the code style. 9707 I would like to apologize with the original developers of this code because of 9708 the history breakage. 9709 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9710 97112016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9712 9713 * gst-libs/gst/vaapi/gstvaapicontext.c: 9714 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 9715 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 9716 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 9717 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 9718 * gst/vaapi/gstvaapivideomemory.c: 9719 libs: small refactors to enhance the code style 9720 As gst-indent generated ugly code in these cases, this patch changes the used 9721 idiomatic into other one. 9722 No functional changes were introduced. 9723 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9724 97252016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9726 9727 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 9728 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: 9729 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c: 9730 * gst-libs/gst/vaapi/gstvaapidecoder.c: 9731 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 9732 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 9733 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 9734 * gst-libs/gst/vaapi/gstvaapidisplay.c: 9735 * gst-libs/gst/vaapi/gstvaapiencoder.c: 9736 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 9737 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 9738 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 9739 * gst-libs/gst/vaapi/gstvaapifilter.c: 9740 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 9741 * gst-libs/gst/vaapi/gstvaapisurface.c: 9742 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 9743 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 9744 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 9745 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 9746 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 9747 * gst-libs/gst/vaapi/gstvaapiwindow.c: 9748 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: 9749 libs: small code style fixes 9750 This a set of small code style fixes detected as-is by gst-indent. 9751 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9752 97532016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9754 9755 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: 9756 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 9757 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 9758 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 9759 * gst-libs/gst/vaapi/gstvaapitexture_egl.c: 9760 * gst-libs/gst/vaapi/gstvaapitexture_glx.c: 9761 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 9762 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 9763 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 9764 libs: trivial comment style fixes 9765 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9766 97672016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9768 9769 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c: 9770 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: 9771 libs: avoid gst-indent mess up 9772 Guard pieces of code to avoid gst-ident to mess up the following code. 9773 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9774 97752016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9776 9777 * gst/vaapi/gstvaapidecode.c: 9778 * gst/vaapi/gstvaapidecodebin.c: 9779 * gst/vaapi/gstvaapipluginutil.c: 9780 * gst/vaapi/gstvaapisink.c: 9781 * gst/vaapi/gstvaapivideomemory.c: 9782 plugins: fix code style 9783 Minor code style changes by executing gst-indent in gst/vaapi directory. 9784 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9785 97862016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com> 9787 9788 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 9789 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 9790 Fix some more compiler warning 9791 Two (false) compiler warnings about variables potentially 9792 being used uninitialized, and one about a variable being 9793 set but not used. 9794 https://bugzilla.gnome.org/show_bug.cgi?id=759192 9795 97962016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com> 9797 9798 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 9799 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 9800 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 9801 * gst-libs/gst/vaapi/gstvaapifilter.c: 9802 * gst/vaapi/gstvaapidecode.c: 9803 * gst/vaapi/gstvaapipluginbase.c: 9804 * gst/vaapi/gstvaapipluginutil.c: 9805 * gst/vaapi/gstvaapipostproc.c: 9806 * tests/simple-encoder.c: 9807 * tests/test-filter.c: 9808 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings 9809 Declare variables at the beginning of a code block, which 9810 is how it's done in GStreamer. 9811 https://bugzilla.gnome.org/show_bug.cgi?id=759192 9812 98132016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9814 9815 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 9816 decoder: vp9: Fix crop rectangle setting 9817 Align with software vp9dec behaviour: Add crop rectangle 9818 only if display_width/display_height is less than the 9819 frame_hdr->width/frame_hdr->height 9820 98212016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 9822 9823 * gst/vaapi/gstvaapidecode.c: 9824 vaapidecode: Fix renegotiation for resolution change 9825 Always renegotiate the pool if the immediate frame which going 9826 to be pushed has a different un-cropped resolution than the already 9827 configured one. 9828 98292016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9830 9831 * gst/vaapi/gstvaapipluginbase.h: 9832 plugins: use the same pre-processor macro 9833 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the 9834 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using 9835 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header. 9836 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS 9837 in the header file. 9838 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9839 98402016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9841 9842 * gst-libs/gst/vaapi/gstvaapidecoder.c: 9843 decoder: update a deprecated function 9844 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got 9845 deprecated since GStreamer 1.0. 9846 This patch replace it with gst_adapter_prev_pts() 9847 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9848 98492016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9850 9851 * configure.ac: 9852 build: honor configure's cache 9853 The user might enable --config-cache when calling configure script. If so, our 9854 configuration variables will not be correctly calculated. 9855 This patch extracts the value of our variables either from the cache or from 9856 the operation result. 9857 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9858 98592016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9860 9861 * configure.ac: 9862 build: use common version variables 9863 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9864 98652016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9866 9867 * configure.ac: 9868 build: hard-code an unneeded macro 9869 That macro is required for EGL's dynamic module loading, but since 9870 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore. 9871 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed. 9872 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9873 98742016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9875 9876 * configure.ac: 9877 build: refactorization of dependency tracking 9878 This patch tries to avoid branching in configure.ac using a more functional 9879 approach in macros usage. 9880 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9881 98822016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9883 9884 * configure.ac: 9885 build: check for OpenGL either GLX or EGL are requested 9886 Refactor some code in configure.ac to centralize $enable_opengl definition. 9887 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9888 98892016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9890 9891 * configure.ac: 9892 build: indent and add square braces 9893 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9894 98952016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9896 9897 * configure.ac: 9898 build: upgrade autotools version dependency 9899 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9900 99012016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9902 9903 * configure.ac: 9904 build: enhance string comparisons 9905 Add a 'x' as a prefix in string comparisons to watch out for edge cases where 9906 the string is empty or undefined. 9907 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9908 99092016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9910 9911 * configure.ac: 9912 build: remove unused variables 9913 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9914 99152016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9916 9917 * configure.ac: 9918 build: remove check for old version of gstreamer 9919 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9920 99212016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9922 9923 * configure.ac: 9924 build: remove GStreamer's parsers checks 9925 This patch removes almost all the parsers check since they are already in place, 9926 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7. 9927 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9928 99292016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9930 9931 * configure.ac: 9932 * gst/vaapi/Makefile.am: 9933 build: add gstreamer-pbutils dependency 9934 This dependency was added in gstvaapidecodebin with the call 9935 gst_missing_element_message_new(). 9936 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9937 99382016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9939 9940 * configure.ac: 9941 build: fix variable declaration 9942 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9943 99442016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9945 9946 * gst-libs/gst/vaapi/Makefile.am: 9947 build: fix when HEVC decoder is disabled 9948 This a very pathological situation: when we have a HEVC encoder but not a HEVC 9949 decoder. 9950 The encoder needs functions that are only available when the decoder is 9951 enabled. 9952 This patch moves the utils functions into the generic sources, such as the 9953 rest of the utils. 9954 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9955 99562016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9957 9958 * gst/vaapi/Makefile.am: 9959 build: remove unused EGL specific sources 9960 These Makefile variables are not used at all. 9961 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9962 99632016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9964 9965 * gst/vaapi/Makefile.am: 9966 build: remove check for GStreamer 1.2 9967 Since we are working for current stable GStreamer 1.6 9968 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9969 99702016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9971 9972 * gst/vaapi/gstvaapiparse.h: 9973 Remove more video parser crufts 9974 This header is not used anymore since it declares parsers that are 9975 already in GStreamer 1.6 9976 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 9977 99782016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com> 9979 9980 * configure.ac: 9981 * docs/reference/Makefile.am: 9982 * docs/reference/libs/Makefile.am: 9983 * docs/reference/libs/libs-docs.xml.in: 9984 * docs/reference/libs/libs-overrides.txt: 9985 * docs/reference/libs/libs-sections.txt: 9986 docs: remove library documentation which is non-public now 9987 https://bugzilla.gnome.org/show_bug.cgi?id=759192 9988 99892016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com> 9990 9991 * Makefile.am: 9992 * configure.ac: 9993 * debian.upstream/Makefile.am: 9994 * debian.upstream/changelog.in: 9995 * debian.upstream/compat: 9996 * debian.upstream/control.in: 9997 * debian.upstream/copyright: 9998 * debian.upstream/gstreamer-vaapi-doc.install.in: 9999 * debian.upstream/gstreamer-vaapi.install.in: 10000 * debian.upstream/rules: 10001 Remove debian.upstream packaging 10002 https://bugzilla.gnome.org/show_bug.cgi?id=759192 10003 100042016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10005 10006 * gst-libs/gst/vaapi/gstvaapidecoder.c: 10007 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 10008 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 10009 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 10010 * gst-libs/gst/vaapi/gstvaapiprofile.c: 10011 * gst/vaapi/gstcompat.h: 10012 * gst/vaapi/gstvaapi.c: 10013 * gst/vaapi/gstvaapidecode.c: 10014 * gst/vaapi/gstvaapiencode.c: 10015 * gst/vaapi/gstvaapipluginbase.c: 10016 * gst/vaapi/gstvaapipluginbase.h: 10017 * gst/vaapi/gstvaapipluginutil.c: 10018 * gst/vaapi/gstvaapisink.c: 10019 Remove old gst version guards 10020 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes 10021 all the old GStreamer version guards. 10022 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10023 100242016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10025 10026 * gst/vaapi/gstvaapiparse.c: 10027 Remove video parser crufts 10028 We forgot to remove gstvaapiparse.c when we removed all the videoparser 10029 machinery. 10030 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10031 100322015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10033 10034 * docs/reference/libs/Makefile.am: 10035 * docs/reference/plugins/Makefile.am: 10036 * gst-libs/gst/vaapi/Makefile.am: 10037 * gst/vaapi/Makefile.am: 10038 * tests/Makefile.am: 10039 libs: remove versioning 10040 Since we don't install libraries anymore, it makes no sense to keep 10041 versioning them according to the gstreamer's version. 10042 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10043 100442015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10045 10046 * configure.ac: 10047 * debian.upstream/Makefile.am: 10048 * debian.upstream/control.in: 10049 * debian.upstream/libgstvaapi-dev.install.in: 10050 * debian.upstream/libgstvaapi-drm.install.in: 10051 * debian.upstream/libgstvaapi-glx.install.in: 10052 * debian.upstream/libgstvaapi-wayland.install.in: 10053 * debian.upstream/libgstvaapi-x11.install.in: 10054 * debian.upstream/libgstvaapi.install.in: 10055 * gst-libs/gst/vaapi/Makefile.am: 10056 * tests/Makefile.am: 10057 libs: make libraries no installables 10058 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10059 100602015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10061 10062 * debian.upstream/libgstvaapi-dev.install.in: 10063 * gst-libs/gst/vaapi/Makefile.am: 10064 Do not install libgstvaapi headers 10065 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10066 100672016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10068 10069 * Makefile.am: 10070 * configure.ac: 10071 * patches/Makefile.am: 10072 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: 10073 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 10074 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: 10075 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch: 10076 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch: 10077 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch: 10078 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch: 10079 * patches/videoparsers/Makefile.am: 10080 * patches/videoparsers/series.frag: 10081 Remove videoparser patches 10082 100832015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10084 10085 * Makefile.am: 10086 * configure.ac: 10087 * debian.upstream/libgstvaapi-dev.install.in: 10088 * pkgconfig/Makefile.am: 10089 * pkgconfig/gstreamer-vaapi-drm.pc.in: 10090 * pkgconfig/gstreamer-vaapi-glx.pc.in: 10091 * pkgconfig/gstreamer-vaapi-wayland.pc.in: 10092 * pkgconfig/gstreamer-vaapi-x11.pc.in: 10093 * pkgconfig/gstreamer-vaapi.pc.in: 10094 Remove pkg-config files 10095 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10096 100972015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10098 10099 * .gitmodules: 10100 * Makefile.am: 10101 * configure.ac: 10102 * ext/Makefile.am: 10103 * ext/codecparsers: 10104 * gst-libs/gst/Makefile.am: 10105 * gst-libs/gst/codecparsers/Makefile.am: 10106 * gst-libs/gst/vaapi/Makefile.am: 10107 * gst/vaapi/Makefile.am: 10108 Remove codecparsers submodule 10109 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10110 101112015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10112 10113 * .gitmodules: 10114 * autogen.sh: 10115 * configure.ac: 10116 * debian.upstream/libgstvaapi.install.in: 10117 * ext/Makefile.am: 10118 * ext/libvpx/Makefile.am: 10119 * ext/libvpx/gstlibvpx.c: 10120 * ext/libvpx/gstlibvpx.h: 10121 * ext/libvpx/libgstcodecparsers_vpx.vers: 10122 * ext/libvpx/sources.frag: 10123 * ext/libvpx/upstream: 10124 * gst-libs/gst/codecparsers/Makefile.am: 10125 * gst-libs/gst/codecparsers/gstvaapilibvpx.c: 10126 Remove libvpx submodule 10127 We will be using upstream codecparsers always. 10128 No more internal libvpx ! 10129 101302015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10131 10132 * configure.ac: 10133 build: fix check for GstJpegParser 10134 Right now the local JPEG parser is always compiled because the check for the 10135 upstreamed version is broken: it looks for an non existent symbol: 10136 GstJpegImage. 10137 This patch changes that check for< GstJpegFrameHdr. 10138 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10139 101402015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de> 10141 10142 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 10143 wayland: free the frame in frame_release_callback() 10144 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland: 10145 decouple wl_buffer from frame). 10146 Otherwise the frame may be overwritten while it is still used by the 10147 compositer: 10148 The frame done callback (frame_done_callback()) is called, when the 10149 compositor is done processing the frame and hands it to the hardware. 10150 The buffer release callback (frame_release_callback()) is called when the 10151 buffer memory is no longer used. 10152 This can be quite some time later: E.g. if weston (with the DRM backend) 10153 puts the buffer on a hardware plane, then then buffer release callback is 10154 called when the kernel is done with the buffer. This is usually when the 10155 next frame is shown, so most likely after the frame done callback for the 10156 next frame! 10157 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when 10158 destroy()" the mentioned possible leak should no longer be a problem, so 10159 reverting this change should cause no leaking buffers. 10160 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10161 https://bugzilla.gnome.org/show_bug.cgi?id=758848 10162 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10163 101642016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10165 10166 * gst/vaapi/gstvaapipostproc.c: 10167 vaapipostproc: check ANY caps at transform_caps() 10168 When transforming downstream caps we should check for ANY caps from peer pad, 10169 otherwise we get a segmentation fault. 10170 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10171 https://bugzilla.gnome.org/show_bug.cgi?id=759893 10172 101732016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10174 10175 * gst/vaapi/gstvaapisink.c: 10176 vaapisink: ignore frame if its upload failed 10177 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer 10178 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was 10179 ignored by the vaapisink, leading to a segmentation fault. 10180 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED 10181 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the 10182 segmentation fault, but doing and effort to continue rendering. This is 10183 the same behavior of ximagesink. 10184 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10185 https://bugzilla.gnome.org/show_bug.cgi?id=759332 10186 101872015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com> 10188 10189 * configure.ac: 10190 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet 10191 https://bugzilla.gnome.org/show_bug.cgi?id=759184 10192 101932015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10194 10195 * gst-libs/gst/vaapi/gstvaapicontext.c: 10196 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 10197 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 10198 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h: 10199 Add 10 HEVC 10 bit decoding support 10200 Only supporting vaapidecode ! vaapisink combination for now. 10201 Missing dependencies: 10202 1: No support for P010 video format in GStreamer 10203 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver 10204 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping 10205 through GstVideoMeta. 10206 Right now we only set chroma format (YUV420 with more than 8 bits per channel) 10207 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format 10208 of the surfaces is implementation (driver) defined, which is P010. 10209 102102001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10211 10212 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 10213 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 10214 gstvaapisurfacepool: Add new API to create surface pool based on chroma type 10215 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for 10216 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified 10217 chroam type and dimensions. The underlying format of the surfaces is 10218 implementation (driver) defined. 10219 102202015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10221 10222 * gst-libs/gst/vaapi/gstvaapisurface.h: 10223 * gst-libs/gst/vaapi/gstvaapiutils.c: 10224 Add definitions for YUV420 with more than 8 bits per channel 10225 102262015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10227 10228 * gst-libs/gst/vaapi/gstvaapiprofile.c: 10229 gstvaapiporfile: Fix string representation of HEVCMain10 profile 10230 102312015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10232 10233 * configure.ac: 10234 Bump version for development 10235 10236=== release 0.7.0 === 10237 102382015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10239 10240 * configure.ac: 10241 0.7.0 10242 102432015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10244 10245 * NEWS: 10246 NEWS: Updates 10247 102482015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10249 10250 * AUTHORS: 10251 AUTHORS: Update 10252 102532015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10254 10255 * README: 10256 README: Update 10257 102582015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10259 10260 * gst-libs/gst/vaapi/gstvaapitexture_glx.c: 10261 texture: detect GL version and use the proper API 10262 When receiving the texture from the application or the video sink, we must 10263 know it size and border. To query the texture the API has changed according to 10264 the OpenGL version used in the GL context of the application/vsink. 10265 This patch checks the current context API type and queries the texture 10266 according to this detected API. 10267 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10268 https://bugzilla.gnome.org/show_bug.cgi?id=753099 10269 102702015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10271 10272 * gst-libs/gst/vaapi/gstvaapitexture_glx.c: 10273 texture: check for expected target and format 10274 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and 10275 formats GL_RGBA or GL_BGRA. 10276 This patch adds a debugging verification of those values. 10277 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10278 https://bugzilla.gnome.org/show_bug.cgi?id=753099 10279 102802015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10281 10282 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 10283 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 10284 libs: add gl3_bind_texture_2d() 10285 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not 10286 needed. In particular, the Intel's Mesa implementation complains if it is 10287 called. 10288 This patch add a new binding function for 2D textures, without enabling 10289 gl3_bind_texture_2d()[2]. 10290 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline 10291 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding 10292 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10293 https://bugzilla.gnome.org/show_bug.cgi?id=753099 10294 102952015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10296 10297 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 10298 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 10299 libs: add gl_get_current_api() 10300 In order to know which OpenGL API use, we must detect the API type of current 10301 context. This patch adds the function gl_get_current_api() which returns the 10302 OpenGL API type. 10303 This function is an adaptation of gst_gl_context_get_current_gl_api() from 10304 GstGL. 10305 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10306 https://bugzilla.gnome.org/show_bug.cgi?id=753099 10307 103082015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10309 10310 * configure.ac: 10311 * gst-libs/gst/vaapi/Makefile.am: 10312 build: Add gmodule dependency for libgstvaapi_egl 10313 https://bugzilla.gnome.org/show_bug.cgi?id=756259 10314 103152015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10316 10317 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch: 10318 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch: 10319 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch: 10320 * patches/videoparsers/series.frag: 10321 patches/videoparsers: h264: Disable passthorugh mode enabling 10322 This is a quick fix for regression introduced by the upstream 10323 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser. 10324 The patch is disabling the passthrough mode, otherwise it will 10325 break multi-layer mvc stream parsing. 10326 https://bugzilla.gnome.org/show_bug.cgi?id=758656 10327 103282015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10329 10330 * gst/vaapi/Makefile.am: 10331 * patches/videoparsers/Makefile.am: 10332 * patches/videoparsers/series.frag: 10333 build: add gsth265parse patches conditionally 10334 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support 10335 GStreamer 1.2, the patching of gsth265parse must be conditional to the target 10336 GStreamer version. 10337 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10338 https://bugzilla.gnome.org/show_bug.cgi?id=755525 10339 103402015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10341 10342 * gst/vaapi/Makefile.am: 10343 build: declare correctly parse lib built files 10344 This is a continuation of commit fc8a0d12 10345 When declaring BUILT_SOURCES, those files should not be distributed. This 10346 patch avoids the distribution of the generated source code. 10347 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10348 https://bugzilla.gnome.org/show_bug.cgi?id=755525 10349 103502015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10351 10352 * ext/libvpx/sources.frag: 10353 build: libvpx: Add missing source file 10354 103552015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10356 10357 * gst/vaapi/gstvaapipostproc.c: 10358 vaapipostproc: Correctly detect the caps change 10359 This is a quick fix for regression introuduced by the 10360 commit 757833230bc73b8e3b4e31649e4618ba802bea51 10361 With out this, the gst_vaapipostproc_create() will 10362 never get invoked. 10363 https://bugzilla.gnome.org/show_bug.cgi?id=758543 10364 103652015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10366 10367 * ext/libvpx/Makefile.am: 10368 * ext/libvpx/sources.frag: 10369 build: libvpx: update the sources lists 10370 `make dist` broke since commit f06798 (libvpx: Update the submodule to 10371 libvpx-1.4.0) because the sources.frag does not contain all the module 10372 sources. 10373 This patch updates thoroughly the sources. 10374 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10375 https://bugzilla.gnome.org/show_bug.cgi?id=755525 10376 103772015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10378 10379 * gst/vaapi/gstvaapipostproc.c: 10380 vaapipostproc: don't set caps change at first set 10381 When the source caps change, the filter is destroyed and recreated. 10382 Nonetheless, this happens every time the vaapipostproc starts, since the caps 10383 change detection algorithm does not take in consideration when the caps are 10384 set by first time. 10385 This patch intents to be an optimization, to avoid a useless filter 10386 destroy-creation cycle when the sources caps are set for first time. 10387 The new helper function video_info_update() is a refactorization to avoid 10388 duplicated code. 10389 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10390 https://bugzilla.gnome.org/show_bug.cgi?id=758007 10391 103922015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10393 10394 * gst/vaapi/gstvaapipostproc.c: 10395 vaapipostproc: params video_info_changed() callers 10396 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers 10397 swapped the the order. This didn't raise problems since the comparison of both 10398 structures were not affected by its semantics. 10399 But still it would be better to fix this to keep the coherence of the code. 10400 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10401 https://bugzilla.gnome.org/show_bug.cgi?id=758007 10402 104032015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10404 10405 * gst/vaapi/Makefile.am: 10406 build: declare real built files 10407 When runnig the `make dist` target from a clean tree, it fails because 10408 if could not find the copied files from codecparsers submodule. 10409 They weren't copied because they weren't declared as built sources. 10410 This patch removes the stamp mechanism and use the actual file list to copy 10411 as the built sources. Also it fixes the duplication of the parser files. 10412 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10413 https://bugzilla.gnome.org/show_bug.cgi?id=755525 10414 104152015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10416 10417 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10418 decoder: vp9: Fix last/golden/altref frame index setting 10419 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices 10420 based on what ever reference frame indices encoded in frame header. 10421 104222015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10423 10424 * debian.upstream/rules: 10425 debian: remove custom parallel compilation 10426 In order to build a debian package with upstream source, the user should 10427 do 10428 ./autogen.sh 10429 cp -a debian.upstream debian 10430 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b 10431 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical 10432 way to make a parallel build (-j8 in this case). 10433 This commit removes the script in debian/rules that detects the number of 10434 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not 10435 official in debian. 10436 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10437 https://bugzilla.gnome.org/show_bug.cgi?id=754087 10438 104392015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10440 10441 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10442 decoder: vp9: Fix PTS calculation of cloned frames 10443 104442015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10445 10446 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10447 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output 10448 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the 10449 gstvaapidecoder base calss is reponsible for handling those frames later on. 10450 No need for explicit verification of frame header's show_frame in order to 10451 do picture outputing. 10452 104532015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10454 10455 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10456 decoder: vp9: Fix ref picture update while doing repeat frame 10457 Don't try to do frame decoding and reference picture update 10458 while receiving a vp9 frame having show_existing_frame flag 10459 set as TRUE. 10460 104612015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10462 10463 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10464 decoder: vp9: Add repeat-frame display handling 10465 If vp9 frame header come up with show_existing_frame flag set, 10466 we should duplicate the existing decoded frame as current frame to 10467 be displayed. 10468 104692015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10470 10471 * gst/vaapi/gstvaapidecodebin.c: 10472 vaapidecodebin: add me as element co-author 10473 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10474 https://bugzilla.gnome.org/show_bug.cgi?id=757957 10475 104762015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10477 10478 * gst/vaapi/gstvaapidecodebin.c: 10479 vaapidecodebin: try to get display from decoder 10480 Rather than create a dummy display, if none has propagated as a context, we 10481 should try to get the one from vaapidecode. 10482 As the bin is already in READY state, the vaapidecode should be also in that 10483 state. That means that the contexts have been negotiated, and it should have 10484 already a display. 10485 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10486 https://bugzilla.gnome.org/show_bug.cgi?id=757957 10487 104882015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10489 10490 * gst/vaapi/gstvaapidecodebin.c: 10491 * gst/vaapi/gstvaapidecodebin.h: 10492 vaapidecodebin: add postprocessor dynamically 10493 The former approach to left the bin unfinished has some problems: the context 10494 cannot be shared because the vaapidecode is unlinked in many cases, leading to 10495 creating a VADisplay twice. 10496 Initially the bin is fully functional, constructed as 10497 (-----------------------------------) 10498 | vaapidecodebin | 10499 | (-------------) (-------) | 10500 |<--| vaapidecode |--->| queue |--->| 10501 | (-------------) (-------) | 10502 (-----------------------------------) 10503 When the context is shared and the VADisplay has VPP capabilities, before 10504 changing to READY state, the bin is reconfigured dynamically, adding the 10505 vaapipostproc element afeter the queue: 10506 (--------------------------------------------------------) 10507 | vaapidecodebin | 10508 | (-------------) (-------) (---------------) | 10509 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->| 10510 | (-------------) (-------) (---------------) | 10511 (--------------------------------------------------------) 10512 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10513 https://bugzilla.gnome.org/show_bug.cgi?id=757957 10514 105152015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10516 10517 * gst/vaapi/gstvaapidecodebin.c: 10518 vaapidecodebin: delay the bin configuration 10519 Delay the bin configuration until changing to READY state. This is because we 10520 should add the vaapipostproc element until the vaapidecode has emitted the 10521 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to 10522 vaapipostproc. 10523 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10524 https://bugzilla.gnome.org/show_bug.cgi?id=757957 10525 105262015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10527 10528 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10529 decoder: vp9: Add crop rectangle support. 10530 Set crop rectange if: 10531 There is display_width and display_height which is different from actual width/height 10532 or 10533 The changed resolution is less than the actual configured dimension of surfaces 10534 105352015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10536 10537 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10538 decoder: vp9: Fix the context and surface pool reset for multi resolution video 10539 Unlike other decoders, vp9 decoder doesn't need to reset the 10540 whole context and surfaces for each resolution change. Context 10541 reset only needed if resolution of any frame is greater than 10542 what actullay configured. There are streams where a bigger 10543 resolution set in ivf header or webm header but actual resolution 10544 of all frames are less. Also it is possible to have inter-prediction 10545 between these multi resolution frames. 10546 105472015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10548 10549 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10550 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header 10551 Always fill width/height of VADecPictureParameterBufferVP9 from frame header. 10552 Preliminary fix for supproting multi resolution video decode. 10553 105542015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10555 10556 * gst/vaapi/gstvaapidecode.c: 10557 vaapidecode: Add comments for corner case fixes and fix couple of indentations. 10558 105592015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10560 10561 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10562 decoder: vp9: Set lossless flag from frame header 10563 105642015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10565 10566 * ext/codecparsers: 10567 codecparsers: Update to gst-vaapi-branch d9f25 10568 d9f2527: codecparsers: vp9: Set lossless flag in frame header 10569 105702015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10571 10572 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10573 libs: vp9: remove unused symbols 10574 clang complains about a couple variables and one label which were not 10575 used. This patch removes them. 10576 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10577 https://bugzilla.gnome.org/show_bug.cgi?id=757958 10578 105792015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10580 10581 * ext/codecparsers: 10582 codecparsers: Update to gst-vaapi-branch da251bb 10583 da251bb: codecparsers: vp9: Optimize the memory allocation 10584 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays 10585 105862015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10587 10588 * gst/vaapi/gstvaapipluginbase.c: 10589 * gst/vaapi/gstvaapipluginbase.h: 10590 plugin: guard pointers to pad query functions 10591 Since gstreamer 1.4 is not required to have pad query functions if the query 10592 vmethods are used. 10593 This patch guards out the pad query functions for gstreamer < 1.4 10594 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10595 https://bugzilla.gnome.org/show_bug.cgi?id=757629 10596 105972015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10598 10599 * gst/vaapi/gstvaapiencode.c: 10600 vaapiencode: use pad query vmethods 10601 GstVideoEncoder, the base class of vaapiencode, added support for pad queries 10602 as virtual methods since gstreamer 1.4. This patch enables those vmethods, 10603 while keeps support for previous versions of gstreamer. 10604 This patch is relevant since GstVideoEncoder takes care of other queries that 10605 we are currently ignoring. 10606 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10607 https://bugzilla.gnome.org/show_bug.cgi?id=757629 10608 106092015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10610 10611 * gst/vaapi/gstvaapidecode.c: 10612 vaapidecode: return pad's template caps if no display 10613 A caps query can occur before the element has a display. In that case, the 10614 element can return its pad's template. But when the element already has a 10615 display, and the caps probe fails, the element shall return an empty caps, so 10616 the auto-plug could try with another decoder. 10617 If the element has a display and the caps probe works, then the computed caps 10618 should be returned. 10619 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10620 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10621 106222015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10623 10624 * gst/vaapi/gstvaapidecode.c: 10625 * gst/vaapi/gstvaapisink.c: 10626 plugins: don't create display at caps query 10627 Caps query can happen before the element has a bus. The display creation should 10628 be should occur on the context negotiation, when the bus is already configured. 10629 Then at caps query no display should be created. 10630 Instead of force the display creation, we graciously fail the allowed_caps() 10631 creation. 10632 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a 10633 basetransform descendant, seems to be not affected by this, nor the encoders. 10634 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10635 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10636 106372015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10638 10639 * gst/vaapi/gstvaapidecode.c: 10640 * gst/vaapi/gstvaapiencode.c: 10641 * gst/vaapi/gstvaapipluginutil.c: 10642 * gst/vaapi/gstvaapipluginutil.h: 10643 * gst/vaapi/gstvaapipostproc.c: 10644 * gst/vaapi/gstvaapisink.c: 10645 plugins: fix context query handling 10646 The current context query handling design is flawed: the function 10647 gst_vaapi_reply_to_query() returns FALSE either if the query is not a 10648 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the 10649 pad query function should handle differently each case. 10650 This patch changes the gst_vaapi_reply_to_query() for 10651 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins 10652 to match the correct context query handling. 10653 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10654 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10655 106562015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10657 10658 * gst/vaapi/gstvaapipluginutil.c: 10659 plugin: don't lose previous context at query 10660 When processing the GST_CONTEXT_QUERY we should not lose the previous 10661 context in the query, we should only add our display structure. 10662 This patch copies the old context, if it is there, and stamp our display on 10663 it. Otherwise, a new context is created. 10664 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10665 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10666 106672015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10668 10669 * gst/vaapi/gstvaapivideocontext.c: 10670 * gst/vaapi/gstvaapivideocontext.h: 10671 vaapivideocontext: add gst_vaapi_video_context_set_display() 10672 This function set the display to an already created context. This function is 10673 going to be used later. 10674 Also, gst_vaapi_video_context_new_with_display() now uses this function. 10675 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10676 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10677 106782015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10679 10680 * gst/vaapi/gstvaapipluginutil.c: 10681 * gst/vaapi/gstvaapivideocontext.c: 10682 * gst/vaapi/gstvaapivideocontext.h: 10683 plugins: check if display is set in sync 10684 Since the context messages are sync'ed, the display assignation happens in the 10685 same thread, hence we can know if the display was found or not as soon we call 10686 for it. 10687 In order to take advantage of it, gst_vaapi_video_context_prepare() receives, 10688 as a new parameter, the address of the plugin's display, and reports back if 10689 the display was found and set. 10690 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10691 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10692 106932015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10694 10695 * gst/vaapi/gstvaapipluginutil.c: 10696 * gst/vaapi/gstvaapivideocontext.c: 10697 plugins: set display through context 10698 Instead of setting the display to the plugin directly after its creation, do 10699 it through the gstreamer's context mechanism, avoiding double assignations. 10700 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10701 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10702 107032015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10704 10705 * gst/vaapi/gstvaapivideocontext.c: 10706 vaapivideocontext: rename context structure 10707 The context structure is named "display" which is too generic. The contrary 10708 happens, for example, with GstGL, what uses the same name as the context, and 10709 its logs make more sense. 10710 This patch renames the context structure with the same name as the 10711 context, thus GST_PTR_FORMAT can pretty print it. 10712 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10713 107142015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10715 10716 * gst/vaapi/gstvaapivideocontext.c: 10717 vaapivideocontext: refactor gst_vaapi_video_context_prepare() 10718 First, refactorized run_context_query() into _gst_context_run_query(), adding 10719 a new parameter: the pad direction, in order to simplify the code. 10720 Second, added a new helper function: _gst_context_query(), which is a generic 10721 context query function. It isolates the operation of running the query and 10722 sets the context if found, also it enhances the logs. 10723 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the 10724 future this helper function will be merged into the core libraries of 10725 GStreamer. 10726 Finally, gst_vaapi_video_context_prepare() was rewritten to use 10727 _gst_context_query(). 10728 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10729 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10730 107312015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10732 10733 * gst/vaapi/gstvaapivideocontext.c: 10734 vaapivideocontext: refactor context category debug 10735 Refactor the extraction GST_CAT_CONTEXT logging using a only once 10736 initializator, so we could get the debug category from different code 10737 paths, safely. 10738 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10739 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10740 107412015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10742 10743 * gst/vaapi/gstvaapivideocontext.c: 10744 gstvaapivideocontext: fix indentation 10745 gst-indent does not handle correctly some expression like function 10746 declaration with attributes, breaking the following expressions. 10747 This patch makes gst-indent to ignore the attributed function 10748 declartion so the followed function definition is not mangled, such 10749 as happened in commit b4154a 10750 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10751 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10752 107532015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10754 10755 * gst/vaapi/gstvaapipluginbase.c: 10756 plugin: chain up set_context() vmethod 10757 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with 10758 the parent class in order to broadcast all its contexts when the element 10759 is added into a bin: 10760 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5 10761 There is no need to guard the call, because before GStreamer 1.7, the 10762 set_context() vmethod was NULL in the element class, hence the conditional 10763 call make it safe. 10764 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10765 https://bugzilla.gnome.org/show_bug.cgi?id=757598 10766 107672015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10768 10769 * tests/simple-encoder.c: 10770 tests: simple-encoder: remove dead code 10771 The caps creation for codec state configuration is not used. Let's remove it. 10772 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10773 107742015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10775 10776 * gst/vaapi/gstvaapidecodebin.c: 10777 vaapidecodebin: fix a leaked display instance 10778 The display returned by gst_vaapi_video_context_get_display() increments the 10779 references. Thus, we have to unref the returned display. 10780 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10781 https://bugzilla.gnome.org/show_bug.cgi?id=757595 10782 107832015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10784 10785 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 10786 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 10787 libs: remove unneeded headers 10788 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not 10789 required to include them in the header. It is not also required to include 10790 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and 10791 exposes their structures (e.g. GLXPixmap). 10792 Nonetheless, glext.h neither glxext.h are required to include, they are 10793 already included conditionally by gl.h and glx.h, respectively. 10794 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10795 https://bugzilla.gnome.org/show_bug.cgi?id=757577 10796 107972015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10798 10799 * ext/codecparsers: 10800 codecparsers: Update to gst-vaapi-branch 0ea6792 10801 0ea6792: codecparsers: vp9: Add header comments 10802 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator 10803 108042015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10805 10806 * gst/vaapi/gstvaapidecode.c: 10807 VP9: plugins: Add VP9 decoder 10808 108092015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10810 10811 * gst-libs/gst/vaapi/Makefile.am: 10812 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c: 10813 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h: 10814 VP9: libgstvaapi: Add VP9 decoder 10815 108162015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10817 10818 * gst-libs/gst/vaapi/gstvaapiprofile.c: 10819 * gst-libs/gst/vaapi/gstvaapiprofile.h: 10820 VP9: gstvaapiprofile: Add profile definitions 10821 108222015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10823 10824 * configure.ac: 10825 VP9: build: Check availability of vp9 decoder APIs 10826 108272015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10828 10829 * configure.ac: 10830 * ext/Makefile.am: 10831 * gst-libs/gst/codecparsers/Makefile.am: 10832 VP9: Allow building vp9 codecparser internally 10833 108342015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10835 10836 * ext/codecparsers: 10837 codecparsers: Update to gst-vaapi-branch commit ac5dc1a 10838 ac5dc1a: codecparsers: vp9: Add vp9 codec parser 10839 e7d9217: codecparser: h264: initialize parsing structures 10840 403d400: codecparser: h265: initialize parsing structures 10841 108422015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10843 10844 * configure.ac: 10845 configure.ac: don't use an undefined variable 10846 If the environment lacks of gstreamer development packages, this error will 10847 be reported to the user: "gstreamer- was not found" 10848 This is because we are using an undefined variable in the printed message. The 10849 fix simple changes the variable for the hard-coded string "1.0". 10850 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10851 https://bugzilla.gnome.org/show_bug.cgi?id=757283 10852 108532015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10854 10855 * gst/vaapi/gstvaapidecode.c: 10856 vaapidecode: relax guards for memory:VASurface capsfeature 10857 Though caps features are supported since GStreamer 1.2, there are some 10858 issues with the features caps negotiation in that version. Nonetheless, 10859 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps 10860 feature negotiation is relaxed for GStreamer 1.4. 10861 The guard is the same as in vaapisink's caps template. 10862 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10863 https://bugzilla.gnome.org/show_bug.cgi?id=756686 10864 108652015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10866 10867 * gst/vaapi/gstvaapidecode.c: 10868 vaapidecode: decide allocation doesn't update srccaps 10869 The received caps query will bring the already negotiated caps, so they are 10870 not expected to change. 10871 This patch removes this verification which is dead code path. 10872 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10873 https://bugzilla.gnome.org/show_bug.cgi?id=756686 10874 108752015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10876 10877 * gst/vaapi/gstvaapidecode.c: 10878 * gst/vaapi/gstvaapipluginutil.c: 10879 * gst/vaapi/gstvaapipluginutil.h: 10880 vaapidecode: use caps to check the features 10881 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is 10882 expensive, we check the caps from the allocation query, to check the 10883 negotiated feature. 10884 In order to do this verification a new utility function has been implemented: 10885 gst_vaapi_caps_feature_contains(). 10886 As this new function shared its logic with gst_caps_has_vaapi_surface(), both 10887 have been refactorized. 10888 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10889 https://bugzilla.gnome.org/show_bug.cgi?id=756686 10890 108912015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10892 10893 * gst/vaapi/gstvaapidecode.c: 10894 vaapidecode: set format before decide allocation 10895 There is a regression from commit 3d8e5e. It was expected the buffer pool 10896 allocation occur before the caps negotiation, but it is not. 10897 This patch fixes this regression: the caps negotiation is done regardless the 10898 allocation query from downstream. 10899 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10900 https://bugzilla.gnome.org/show_bug.cgi?id=756686 10901 109022015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com> 10903 10904 * configure.ac: 10905 build: check for patch and fix yasm check 10906 Add configure checking for GNU patch tools and fixed configure 10907 checking YASM to correct sequence. 10908 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> 10909 https://bugzilla.gnome.org/show_bug.cgi?id=756690 10910 109112015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10912 10913 * ext/libvpx/Makefile.am: 10914 build: Remove disable-md5 option for libvpx build 10915 The configure option --disable-md5 was provided in libvpx-1.3.0 which 10916 has been removed in 1.4.0. 10917 109182015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10919 10920 * ext/libvpx/upstream: 10921 libvpx: Update the submodule to libvpx-1.4.0 10922 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd 10923 109242015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10925 10926 * configure.ac: 10927 configure: mark support for GStreamer 1.2 as obsolete. 10928 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported. 10929 Our goal is to support the last two stable versions of GStreamer which 10930 are 1.4 and 1.6 at the moment. 10931 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7 10932 release and will get rid of those in 0.8. 10933 109342015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 10935 10936 * gst/vaapi/gstvaapidecode.c: 10937 vaapidecode: Fix buffer copy assertion 10938 Don't try to copy the NULL buffer-codec_data. 10939 109402015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10941 10942 * configure.ac: 10943 build: allow builds against GStreamer 1.7.x 10944 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10945 109462015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10947 10948 * gst/vaapi/gstcompat.h: 10949 gstcompat: add gst_buffer_copy_deep() if gst < 1.5 10950 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should 10951 add an implementation if gstreamer-vaapi is linked to previous versions. 10952 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10953 109542015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10955 10956 * gst/vaapi/gstvaapidecode.c: 10957 vaapidecode: simplify copy of GstVideoCodecState 10958 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10959 109602015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10961 10962 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch: 10963 * patches/videoparsers/series.frag: 10964 patches/videoparsers: h265parser: more API fences 10965 Add more API fences according with its version and refresh the patch. 10966 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10967 https://bugzilla.gnome.org/show_bug.cgi?id=754845 10968 109692015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10970 10971 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch: 10972 * patches/videoparsers/series.frag: 10973 patches/videoparsers: h265parser: rename patch keeping number 10974 Refresh the patch and rename it in order to keep the patch number. 10975 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10976 https://bugzilla.gnome.org/show_bug.cgi?id=754845 10977 109782015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10979 10980 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 10981 patches/videoparsers: h264parser: more API fences and refresh 10982 Add more API fences according with its version and refresh the patch. 10983 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10984 https://bugzilla.gnome.org/show_bug.cgi?id=754845 10985 109862015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10987 10988 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch: 10989 * patches/videoparsers/series.frag: 10990 patches/videoparsers: h264parser: fix description and refresh 10991 Fix a typo in the patch description and refresh it in order to avoid the 10992 creation of .orig files and break the distcheck target. 10993 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10994 https://bugzilla.gnome.org/show_bug.cgi?id=754845 10995 109962015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 10997 10998 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: 10999 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: 11000 patches/videoparsers: h264parser: refresh patches 11001 In order to avoid the creation of .orig files and break the distcheck target. 11002 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11003 https://bugzilla.gnome.org/show_bug.cgi?id=754845 11004 110052015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11006 11007 * gst/vaapi/Makefile.am: 11008 build: link libgstvaapi_parse against codec parser 11009 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled 11010 when running configure. 11011 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse 11012 need it if builtin codec parsers are disabled. 11013 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse 11014 compilation. If builtin codec parsers are enable, this variable is null, so it 11015 should work using libgstvaapi, as normal. 11016 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11017 https://bugzilla.gnome.org/show_bug.cgi?id=754845 11018 110192015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11020 11021 * configure.ac: 11022 build: verify for H264 MVC and H265 SPS 11023 Currently the H264 and H265 parsers look for MVC and SPS respectively, and 11024 the required symbols for those were added in GStreamer 1.5 11025 If we try to compile in GStreamer < 1.4, without enabling the builtin codec 11026 parsers, the compilation fails, because the lack of those symbols. 11027 This patch verifies if the installed H264 and H265 parsers have those symbols. If 11028 they do not, the specific built in codec parsers are enabled and used. 11029 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11030 https://bugzilla.gnome.org/show_bug.cgi?id=754845 11031 110322015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11033 11034 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 11035 decoder: h264: initialize PPS's slice_group_id 11036 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized, 11037 so it contains random data. 11038 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id 11039 pointer uninitialized, leading to a segmentation fault when the memory is 11040 freed. 11041 This patch prevents this by initializing the slice_group_id before the PPS 11042 parsing. 11043 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11044 https://bugzilla.gnome.org/show_bug.cgi?id=754845 11045 110462015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net> 11047 11048 * gst/vaapi/gstvaapidecode.c: 11049 vaapidecode: proper numerator and denominator for forced latency framerate 11050 https://bugzilla.gnome.org/show_bug.cgi?id=755040 11051 110522015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11053 11054 * ext/codecparsers: 11055 codecparsers: Update to gst-vaapi-branch commit f9e284b 11056 dae1a84: h264parse/h265parse: Fix negotiation crash 11057 45a9f8a: codecparsers: h265 : Fix default scaling list values 11058 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set 11059 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11060 110612015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11062 11063 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11064 decoder: hevc: Don't flush dpb for EOS/EOB nal 11065 Explicit flushing of dpb for EOS and EOB nal decoding is wrong, 11066 the dpb_add() itself will handle the flusing(if needed) of dpb 11067 for end of sequence and end of bitstream. 11068 https://bugzilla.gnome.org/show_bug.cgi?id=754010 11069 110702015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11071 11072 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11073 decoder: hevc: Fix the dpb_add() based on C.5.2.3 11074 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb 11075 just after the PicLatencyCnt setting of existing dpb frames. 11076 https://bugzilla.gnome.org/show_bug.cgi?id=754010 11077 110782015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11079 11080 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11081 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015) 11082 This fix is based on the V3 vesion of spec which was missing in older versions. 11083 When the current picture has PicOutputFlag equal to 1, for each picture in the 11084 DPB that is marked as "needed for output" and follows the current picture in output order, 11085 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3). 11086 https://bugzilla.gnome.org/show_bug.cgi?id=754010 11087 110882015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11089 11090 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11091 decoder: h265: Fix indentation 11092 110932015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com> 11094 11095 * gst-libs/gst/vaapi/gstvaapidecoder.c: 11096 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 11097 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 11098 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 11099 * gst/vaapi/gstvaapidecode.c: 11100 * gst/vaapi/gstvaapipluginutil.c: 11101 multiview: initial attempt at stereo/multiview support 11102 Add support for marking caps and buffers for multiview or 11103 stereoscopic output. 11104 https://bugzilla.gnome.org/show_bug.cgi?id=750835 11105 111062015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11107 11108 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11109 decoder: hevc: remove unused functions 11110 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11111 https://bugzilla.gnome.org/show_bug.cgi?id=754250 11112 111132015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11114 11115 * gst/vaapi/gstvaapidecode.c: 11116 vaapidecode: remove (another) unused variable 11117 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11118 111192015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11120 11121 * gst/vaapi/gstvaapidecode.c: 11122 vaapidecode: remove unused variable 11123 Thus silence the compilation warnings. 11124 111252015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11126 11127 * gst/vaapi/gstvaapidecode.c: 11128 vaapidecode: compilation fix 11129 gst_vaapi_decoder_state_changed() returns void. This patch fixes the 11130 compilation where the toolchain uses restrictive flags as clang. 11131 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11132 111332015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11134 11135 * gst/vaapi/gstvaapidecode.c: 11136 vaapidecode: renegotiate if caps are not equal 11137 The use of gst_caps_is_always_compatible() for this optimization may lead to 11138 false positives. It is better to stick to gst_caps_is_strictly_equal() to know 11139 if it is required a re-negotiation. 11140 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11141 https://bugzilla.gnome.org/show_bug.cgi?id=750835 11142 111432015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11144 11145 * gst/vaapi/gstvaapidecode.c: 11146 * gst/vaapi/gstvaapidecode.h: 11147 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos 11148 Delaying the pool re-negotiation untill we push all decoded (and queued) 11149 frames downstream. Otherwise for the multi-resolution videos, the 11150 GstVideoVideoMemory will be having wrong resolution and which leads 11151 to nasty behaviours, especially when using software renderers. 11152 sample media file: RAP_B_Bossen_1.bin 11153 case explained: 11154 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to 11155 get the final resoultion 416x240. 11156 Starting from 25 th frame, the resolution will change to 416x240. But parser 11157 elements won't report this since the effective croped resolution is same in 11158 both cases. Here the core libgstvaapi will detect this through it's internal 11159 parsing and do all context/pool destory/reset stuffs. Also it will notify this 11160 change to plugins in advance. But if the plugin try to do re-negotiaion of pool 11161 immediately, this will not sync with the resolution of already decoded and queued 11162 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the 11163 software renderer). So we have to delay the pool renegotiation in vaapidecode, 11164 untill we push all decoded frames downstream. 11165 https://bugzilla.gnome.org/show_bug.cgi?id=753914 11166 111672015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11168 11169 * gst/vaapi/gstvaapidecode.c: 11170 vaapidecode: Always keep a copy of input codec state 11171 Currently we are sharing the input GstVideoCodecState with 11172 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for 11173 each caps change. This is troublesome in many cases, for eg: if 11174 resoultion changes with in a singe stream. Because, when ever there 11175 is a resolution change, GstVideoDecoder will first change the Codec_state->caps 11176 fields with new resolution, but since we are using the same codecstate (ref) 11177 in gstvaapidecode.c, the caps check for input caps change will always fail. 11178 https://bugzilla.gnome.org/show_bug.cgi?id=753914 11179 111802015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11181 11182 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11183 decoder: hevc: Fix the scaling list scan order 11184 The default scan order of scaling lists are up-right-diagonal 11185 as per hevc specification. Use the newly implemented 11186 uprightdiagonal_to_raster conversion codecparser APIs to 11187 get the the scaling_list values in raster order, which is 11188 what the VA intel driver requires. 11189 111902015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11191 11192 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11193 decoder: hevc: sync with the codecparser changes 11194 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented 11195 in codecparsers now. Remove the duplication from gstvaapidecoder_h265 11196 111972015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11198 11199 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 11200 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks 11201 112022015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11203 11204 * ext/codecparsers: 11205 codecparsers: Update to gst-vaapi-branch commit 69550f1 11206 c207c6d: codecparsers: h265: Fix tile row and column parsing 11207 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion 11208 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom 11209 1746bbe: videoparsers: Use gst_base_parse_merge_tags() 11210 2f0932b: h264parse: Clear SPS info after processing 11211 f57d6b0: videoparsers: enable accept-template flag 11212 112132015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11214 11215 * debian.upstream/control.in: 11216 debian: add yasm as build dependency 11217 As the compilation of libvpx (for vp8 parser) is enabled by default, 11218 yasm is required by default too. 11219 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11220 112212015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com> 11222 11223 * debian.upstream/rules: 11224 debian: remove --with-gstreamer-api option 11225 It is no longer valid in gstreamer-vaapi. 11226 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> 11227 [removed unused GST_API_VERSION variable] 11228 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11229 https://bugzilla.gnome.org/show_bug.cgi?id=753618 11230 112312015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11232 11233 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 11234 wayland: rename is_cancelled to sync_failed 11235 Since commit 065a18a3, the semantics of the variable is_cancelled did not make 11236 sense. This commit renames this variable to sync_failed. 11237 112382015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com> 11239 11240 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 11241 wayland: Don't return GST_FLOW_ERROR on flushing 11242 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to 11243 return FALSE which makes gst_vaapi_window_wayland_render() return 11244 FALSE which ends up posting an ERROR message in 11245 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE 11246 in the EBUSY case. 11247 https://bugzilla.gnome.org/show_bug.cgi?id=753598 11248 112492015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11250 11251 * gst/vaapi/gstvaapi.c: 11252 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now." 11253 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a. 11254 112552015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11256 11257 * gst/vaapi/gstvaapidecodebin.c: 11258 vaapidecodebin: check for postproc instance 11259 If the VPP's deinterlace-method is set, first we should check if the postproc 11260 is already instanced to set it. Otherwise we just store it until the VPP is 11261 added into the bin. 11262 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11263 https://bugzilla.gnome.org/show_bug.cgi?id=749554 11264 112652015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11266 11267 * gst/vaapi/gstvaapidecodebin.c: 11268 * gst/vaapi/gstvaapipluginutil.c: 11269 * gst/vaapi/gstvaapipluginutil.h: 11270 vaapidecodebin: ensure VPP before going to READY 11271 There are sometimes that the VA-API display context is not shared among the 11272 pipeline, but it is important to know it before going to READY state (when the 11273 pipeline is already linked). 11274 One instance of this case is this: 11275 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink 11276 This patch adds a new function in gstvaapipluginutil called 11277 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API 11278 display, which only will be used for verify if the VAEntrypointVideoProc is 11279 available by the hardware. Afterwards, it should be unrefed. 11280 If the vaapidecodebin is going to READY state, and the element still doesn't 11281 know if VPP is available, the last resort is to create a new instance of the 11282 VA-API display and test for it. 11283 https://bugzilla.gnome.org/show_bug.cgi?id=749554 11284 112852015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11286 11287 * gst/vaapi/gstvaapidecodebin.c: 11288 vaapidecodebin: post an error message if fails 11289 If the construction of the bin fails, post an error message in the bus. 11290 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11291 https://bugzilla.gnome.org/show_bug.cgi?id=749554 11292 112932015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11294 11295 * gst/vaapi/gstvaapidecodebin.c: 11296 * gst/vaapi/gstvaapidecodebin.h: 11297 vaapidecodebin: has_vpp as a tri-state variable 11298 has_vpp can be UNKNOWN while the context message hasn't being received. 11299 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11300 https://bugzilla.gnome.org/show_bug.cgi?id=749554 11301 113022015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11303 11304 * gst/vaapi/gstvaapivideomemory.c: 11305 gstvaapivideomemory: native format with no derived image 11306 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface 11307 info based on the derived image configuration. 11308 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11309 https://bugzilla.gnome.org/show_bug.cgi?id=744042 11310 113112015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 11312 11313 * gst-libs/gst/vaapi/video-format.c: 11314 * gst-libs/gst/vaapi/video-format.h: 11315 * gst/vaapi/gstvaapivideomemory.c: 11316 surface pool config based on video info 11317 First added the function gst_vaapi_video_format_get_best_native(), which 11318 returns the best native format that matches a particular chroma type: 11319 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800 11320 RGB32 chroma and encoded format map to NV12 too. 11321 That format is used to configure, initially, the surface's pool for the 11322 allocator. 11323 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11324 https://bugzilla.gnome.org/show_bug.cgi?id=744042 11325 113262015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 11327 11328 * gst/vaapi/gstvaapivideomemory.c: 11329 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new() 11330 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11331 https://bugzilla.gnome.org/show_bug.cgi?id=744042 11332 113332015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com> 11334 11335 * gst-libs/gst/vaapi/gstvaapiencoder.c: 11336 gstvaapiencoder: validate chroma according to the VA's RT format 11337 Before, only YUV420 color space where supported. With this patch, the 11338 encoder is queried to know the supported formats and admits YUV422 11339 color space if its available. 11340 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11341 https://bugzilla.gnome.org/show_bug.cgi?id=744042 11342 113432015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11344 11345 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11346 decoder: hevc: Add calculation of WpOffsetHalfRangeC 11347 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1 11348 prediction weight table values with out using any hard coding. 11349 Fixme: We don't have parser API for sps_range_extension, so 11350 assumed zero value for high_precision_offsets_enabled_flag. 11351 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11352 113532015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11354 11355 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11356 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation 11357 Based on ITU-T rec H265(4/2015): 7-56 11358 This was a wrong equation in rec H265 (4/2013): 7-44... 11359 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11360 113612015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11362 11363 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11364 decoder: hevc: Fix default value assignment of pred_weight_table 11365 113662015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11367 11368 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11369 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom 11370 Assign only if ChromaArrayType != 0.. 11371 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11372 113732015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11374 11375 * ext/codecparsers: 11376 codecparsers: Update to gst-vaapi-branch commit 1c70432 11377 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom 11378 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification 11379 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11380 113812015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11382 11383 * ext/codecparsers: 11384 codecparsers: Update to gst-vaapi-branch commit c18b8ad 11385 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals 11386 a033083: videoparsers: h265: Fix the frame start detection code 11387 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11388 113892015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11390 11391 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11392 decoder: hevc: Add SEI parsing 11393 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11394 113952015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11396 11397 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11398 decoder: hevc: Workaround to recognize wrongly encoded main profile streams 11399 HACK: This is a work-around to identify some main profile streams having wrong profile_idc. 11400 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't 11401 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc 11402 has been set as zero and having general_profile_compatibility_flag[general_profile_idc] 11403 is TRUE. Assuming them as MAIN profile for now. 11404 https://bugzilla.gnome.org/show_bug.cgi?id=753226 11405 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11406 114072015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11408 11409 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 11410 patches/videoparsers: Fix the wrong source file path 11411 This is something wrongly typed in commit 6d7b631 11412 114132015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11414 11415 * ext/codecparsers: 11416 codecparsers: Update to gst-vaapi-branch commit b8d8be4 11417 ee7e81b: h264parse: Don't discard first AU delimiter 11418 3690fb9: h264parse: Add more NAL types for debugging output 11419 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL 11420 ace61048: h265parse: expose compatible profiles to downstream 11421 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11422 114232015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11424 11425 * gst/vaapi/gstvaapipluginutil.c: 11426 * gst/vaapi/gstvaapivideocontext.c: 11427 * gst/vaapi/gstvaapivideocontext.h: 11428 gstvaapivideocontext: remove unused parameter 11429 gst_vaapi_video_context_prepare() received an unused parameter. This patch 11430 removes it and the structure passed by the caller. 11431 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f). 11432 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11433 114342015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11435 11436 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11437 decoder: hevc: Fix decoding of stream when it has temporal sublayers 11438 We are calculating the dpb size based on max_dec_pic_buffering. 11439 But if there are more than one temporal sublayers, we are supposed 11440 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb 11441 size calculation (Assuming HighestTid as max_sub_layers_minus). 11442 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin 11443 https://bugzilla.gnome.org/show_bug.cgi?id=753226 11444 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11445 114462015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11447 11448 * gst/vaapi/gstvaapidecode.c: 11449 * gst/vaapi/gstvaapidecodebin.c: 11450 * gst/vaapi/gstvaapiencode_h264.c: 11451 * gst/vaapi/gstvaapiencode_h265.c: 11452 * gst/vaapi/gstvaapiencode_jpeg.c: 11453 * gst/vaapi/gstvaapiencode_mpeg2.c: 11454 * gst/vaapi/gstvaapiencode_vp8.c: 11455 * gst/vaapi/gstvaapipluginutil.h: 11456 * gst/vaapi/gstvaapipostproc.c: 11457 * gst/vaapi/gstvaapisink.c: 11458 refactor vaapi caps strings for pad templates 11459 Refactor the main vaapi caps strings into three macros: 11460 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and 11461 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS. 11462 Those are in gstvaapipluginutil.h so all the elements could use them, instead 11463 of re-declaring them every time. 11464 No functional changes. 11465 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11466 114672015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11468 11469 * gst/vaapi/gstvaapipostproc.c: 11470 gstvaapipostproc: fix code style 11471 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11472 114732015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11474 11475 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 11476 decoder: hevc: Fix the decoding of dependent slice segment 11477 Decoding process for reference picture list construction needs to be 11478 invoked only for P and B slice and the value for slice_type of dependent slice 11479 segment should be taken from the previous independent slice segment header 11480 of the same pic. 11481 https://bugzilla.gnome.org/show_bug.cgi?id=753226 11482 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11483 114842015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com> 11485 11486 * gst/vaapi/gstvaapipluginbase.c: 11487 plugins: reduce the noise of warnings 11488 Those messagse should be attached to the object, also the lack of 11489 caps is not an error, in particular in the case of JPEG encoding. 11490 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11491 https://bugzilla.gnome.org/show_bug.cgi?id=744042 11492 114932015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 11494 11495 * gst-libs/gst/vaapi/gstvaapicontext.c: 11496 gstvaapicontext: fix the JPEG encoder attribs value 11497 When we query for the VAConfigAttribEncJPEG, we get a value which packs the 11498 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch 11499 assigns the returned value to the attribute. 11500 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11501 https://bugzilla.gnome.org/show_bug.cgi?id=744042 11502 115032015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com> 11504 11505 * gst-libs/gst/vaapi/gstvaapiencoder.c: 11506 gstvaapiencoder: framerate 0/1 is valid too 11507 Framerate 0/1 is valid, and it is particularly useful for picture 11508 encoding, such as jpeg. This patch makes the encoder to admit that 11509 framerate. 11510 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11511 https://bugzilla.gnome.org/show_bug.cgi?id=744042 11512 115132015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11514 11515 * gst/vaapi/gstvaapipostproc.c: 11516 vaapipostroc: GLTextureUploadMeta in sink template 11517 Advertise GLTextureUploadMeta in sink caps template. 11518 https://bugzilla.gnome.org/show_bug.cgi?id=752130 11519 115202015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 11521 11522 * gst/vaapi/Makefile.am: 11523 * gst/vaapi/gstvaapiencode.c: 11524 * gst/vaapi/gstvaapipluginbase.c: 11525 * gst/vaapi/gstvaapipluginbase.h: 11526 * gst/vaapi/gstvaapipostproc.c: 11527 * gst/vaapi/gstvaapisink.c: 11528 * gst/vaapi/gstvaapiuploader.c: 11529 * gst/vaapi/gstvaapiuploader.h: 11530 remove gstvaapiuploader 11531 Working on bug #744042 I realized that the gstvaapiuploader is practically not 11532 used. 11533 This patch removes the gstvaapiuploader and add the method 11534 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that 11535 the system can handle, which is used by vaapisink and vaapipostproc. 11536 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11537 https://bugzilla.gnome.org/show_bug.cgi?id=752777 11538 115392015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11540 11541 * gst/vaapi/gstvaapidecode.c: 11542 vaapidecode: don't lost GLTextureUpload on seek 11543 When seeking, the decoder is reset, but the buffer pool is not 11544 re-negotiated, but in reset_full() the code forgets if the negotiated buffer 11545 pool has the GLTextureUpload meta. 11546 The decoder knows that GLTextureUpload meta was negotiated in 11547 decide_allocation(), but this method is not called when seeking. 11548 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11549 https://bugzilla.gnome.org/show_bug.cgi?id=752929 11550 115512015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11552 11553 * gst/vaapi/gstvaapipluginutil.c: 11554 plugins: don't use gst_pad_get_allowed_caps() 11555 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case 11556 decoders, that is OK, but in the case of the postproc might lead loops, 11557 since the gst_base_transform_query_caps() forwards the query upstream 11558 and forth. 11559 Instead of gst_pad_get_allowed_caps() we only query the peer with 11560 gst_pad_peer_query_caps() using the pad's template as filter. 11561 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11562 https://bugzilla.gnome.org/show_bug.cgi?id=752558 11563 115642015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11565 11566 * README: 11567 README: updates 11568 115692015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11570 11571 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch: 11572 * patches/videoparsers/series.frag: 11573 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5 11574 All API/ABI changes for S3D/MVC are added in 1.5, backporting 11575 them to older verison is not recommended. 11576 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11577 115782015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11579 11580 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 11581 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks 11582 115832015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11584 11585 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 11586 decoder: jpeg: Align with new API/ABI changes in codecparser 11587 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11588 115892015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11590 11591 * ext/codecparsers: 11592 codecparsers: Update to gst-vaapi-branch commit 800bdb2 11593 ed13220: mpegvideometa: add meta transform function 11594 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct 11595 7a51722: codecparsers: jpeg: fix docs for table parsing functions 11596 06b8ded: codecparsers: jpeg: fix validity checking of data parsed 11597 387a39d: codecparsers: jpeg: fix up API 11598 db9d6a9: codecparsers: jpeg: tweak API a little 11599 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code() 11600 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code 11601 4658c30: codecparsers: jpeg: fix calculation of segment size 11602 759bcb9: codecparsers: jpeg: fix default Huffman tables generation 11603 b4811ee: codecparsers: jpeg: add JPEG bitstream parser 11604 9422464: h264parse: fix typo in log message 11605 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect 11606 77704ce: nalutils: trivial patch to check if 11607 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker 11608 7862f95: Revert "codecparsers: remove ignored increment of return" 11609 54017b1: h264parse: Add support for passing stereoscopic/multiview info 11610 8667ee4: h264parse: Don't switch to passthrough on set_caps() 11611 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11612 116132015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 11614 11615 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 11616 decoder: h264: track previous reference frames. 11617 Improve closure of gaps in frame_num by strictly following and trying 11618 to fill them with previous reference frames. So, they are now tracked 11619 thus avoiding insertion of dummy ("greenish") frames. 11620 116212015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 11622 11623 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 11624 decoder: h264: fix integration of second field into the DPB. 11625 If the new picture to be added to the DPB is not a first field, then 11626 it shall be the second field of the previous picture that was added 11627 before. 11628 This removes the need for dpb_find_picture() now that we track the 11629 immediately preceding decoded picture, in decode order. 11630 116312015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 11632 11633 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 11634 decoder: h264: fix closure of "other-field" gap. 11635 When a dummy "other-field" is inserted, it is assumed to inherit the 11636 reference flags from the first field, and the sliding window decoded 11637 reference picture marking process is also executed so that corrupted 11638 frames are moved out as early as possible. 11639 While doing so, we also try to output frames that now contain a single 11640 valid field picture, prior to inserting any other picture into the DPB. 11641 Note: this may be superfluous currently based on the fact that dpb_add() 11642 combines the two most recent pairable fields, but this process would be 11643 further simplified later on. 11644 116452015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 11646 11647 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 11648 decoder: h264: track corrupted frames. 11649 Mark the picture as "corrupted" if it is reconstructed from corrupted 11650 references or if those references are fake, e.g. resulting from lost 11651 frames. 11652 This is useful for notifying the upper layer, or downstream elements, 11653 that the decoded frame may contain artefacts. 11654 https://bugzilla.gnome.org/show_bug.cgi?id=703921 11655 116562015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 11657 11658 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 11659 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 11660 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 11661 * gst/vaapi/gstvaapidecode.c: 11662 decoder: add initial infrastructure for marking corrupted output. 11663 Add initial infrastructure in core codec library and vaapidecode to mark 11664 corrupted frames as such. A corrupted frame is such a frame that was 11665 reconstructed from invalid references for instance. 11666 https://bugzilla.gnome.org/show_bug.cgi?id=751434 11667 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 11668 116692015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11670 11671 * configure.ac: 11672 Bump version for development 11673 11674=== release 0.6.0 === 11675 116762015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11677 11678 * configure.ac: 11679 0.6.0 11680 116812015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11682 11683 * NEWS: 11684 NEWS: updates 11685 116862015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11687 11688 * gst-libs/gst/vaapi/gstvaapiprofile.c: 11689 vaapidecoder: no wmv profiles gstreamer 1.4/1.2 11690 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4 11691 Right now there is not a primary ranked parser for vc1 and the demuxers 11692 delivers caps without specifying the profile. This situation is not an issue 11693 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a 11694 explicit profile defined in the negotiated caps. 11695 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the 11696 negotiation admits caps subsets try outs. 11697 This patch solves the issue ignoring the profile negotiation in the caps. For 11698 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get 11699 done without the vc1 parser, such as happens in gstreamer 1.5. 11700 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11701 117022015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11703 11704 * gst/vaapi/gstvaapi.c: 11705 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now. 11706 Unfortunately vaapidecodebin element is not seems to be stable 11707 enough for autoplugging ahead of vaapidecode. 11708 Lowering the rank for now (cosidering the immediate 0.6 release). 11709 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554 11710 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11711 117122015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11713 11714 * gst-libs/gst/vaapi/Makefile.am: 11715 build: Add missing CFLAGS to Makefile.am 11716 117172015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11718 11719 * gst-libs/gst/vaapi/gstvaapifilter.c: 11720 gstvaapifilter: Only register STE property if it supported by corresponding VA library 11721 Fix the regression introduced in commit eb465fb. 11722 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36. 11723 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11724 117252015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11726 11727 * gst/vaapi/gstvaapipostproc.c: 11728 vaapipostproc: no format convert on GL tex upload meta 11729 When GL texture upload meta is negotiated, vaapipostproc shall not modify the 11730 color format of the buffer. 11731 https://bugzilla.gnome.org/show_bug.cgi?id=748184 11732 117332015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11734 11735 * gst-libs/gst/vaapi/gstvaapifilter.c: 11736 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement 11737 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36. 11738 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11739 117402015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11741 11742 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 11743 encoder:h265: Fix the check for packed-header support 11744 Use VA_ENC_PACKED_HEADER_* definition for checking. 11745 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11746 117472015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11748 11749 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 11750 encoder:h264: Fix the check for packed-header support 11751 Use VA_ENC_PACKED_HEADER_* definition for checking. 11752 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11753 117542015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11755 11756 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 11757 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode 11758 One buffering_period() SEI message shall be present in every IDR access unit 11759 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we 11760 use a non-CQP mode, e.g. CBR. In other words, when 11761 nal_hrd_parameters_present_flag is set to 1. 11762 One picture_timing() SEI messages shall be present in every access unit 11763 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1 11764 https://bugzilla.gnome.org/show_bug.cgi?id=722734 11765 https://bugzilla.gnome.org/show_bug.cgi?id=751831 11766 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11767 117682015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11769 11770 * gst/vaapi/gstvaapidecodebin.c: 11771 vaapidecodebin: notify if vpp is disabled 11772 When the system is aware that VPP is not available by the VA driver, 11773 it would be useful to notify to the user that the disable-vpp property 11774 has changed. 11775 https://bugzilla.gnome.org/show_bug.cgi?id=749554 11776 117772015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11778 11779 * gst/vaapi/gstvaapidecodebin.c: 11780 * gst/vaapi/gstvaapidecodebin.h: 11781 vaapidecodebin: enable vpp if it is available 11782 Instead of creating and adding VPP into the bin at setup, we wait until 11783 we are sure the VA driver supports it. We know that when the VA video 11784 context is received by the bin. Afterwards, it is decided to instanciate 11785 and link the VPP or not. 11786 This is more efficient and safer than waiting the VPP to fail and then 11787 disable it. 11788 https://bugzilla.gnome.org/show_bug.cgi?id=749554 11789 117902015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11791 11792 * tests/test-display.c: 11793 * tests/test-windows.c: 11794 tests: Fix compilation while enabling egl as the only renderer in build 11795 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h. 11796 117972015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11798 11799 * configure.ac: 11800 configure: fix the build while enabling egl as the only renderer 11801 118022015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11803 11804 * configure.ac: 11805 libs: Bump library major version 11806 118072015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11808 11809 * gst/vaapi/gstvaapi.c: 11810 * gst/vaapi/gstvaapidecodebin.c: 11811 * gst/vaapi/gstvaapiencode.c: 11812 * gst/vaapi/gstvaapiencode_jpeg.c: 11813 * gst/vaapi/gstvaapipluginbase.c: 11814 * gst/vaapi/gstvaapipluginutil.c: 11815 * gst/vaapi/gstvaapipostproc.c: 11816 * gst/vaapi/gstvaapivideobufferpool.c: 11817 * gst/vaapi/gstvaapivideocontext.c: 11818 * gst/vaapi/gstvaapivideomemory.c: 11819 * gst/vaapi/gstvaapivideometa.c: 11820 gst/vaapi: Switch to upstreram like indentation. 11821 gst-indent for all gst/vaapi/*.c source files 11822 118232015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11824 11825 * gst/vaapi/gstvaapidecodebin.c: 11826 * gst/vaapi/gstvaapidecodebin.h: 11827 vaapidecodebin: Add property to disable VPP 11828 Adding a new propery "disable-vpp", enabling it will prevent 11829 the insertion of vaapipostproc child element. 11830 This is helpful in debugging, specifically to narrow-down the 11831 vaapidecodebin/vaapipostproc related negotiation issues. 11832 No support for run-time disabling for now. 11833 https://bugzilla.gnome.org/show_bug.cgi?id=745901 11834 118352015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11836 11837 * gst/vaapi/gstvaapipostproc.c: 11838 vaapipostproc: Fix wrong selection of passthrough mode. 11839 The Current code path is falling back to passthorugh mode if there is no 11840 vpp property set by the user explictily. But we should not use the 11841 passthrough mode if the negotiated src pad caps have a differnt color space 11842 format than sink pad caps (Even though the user didn't set the format property 11843 explicitly). 11844 https://bugzilla.gnome.org/show_bug.cgi?id=748184 11845 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11846 118472015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11848 11849 * gst/vaapi/gstvaapipostproc.c: 11850 vaapipostproc: prevent advanced-deinterlacing of non-native video formats. 11851 This is a workaround to deal with the va-intel-driver for non-native 11852 formats while doing advanced deinterlacing. The format of reference surfaces must 11853 be same as the format used by the driver internally for motion adaptive 11854 deinterlacing and motion compensated deinterlacing. 11855 A permanent solution could be to do the color space conversion internally 11856 for reference surfaces. 11857 https://bugzilla.gnome.org/show_bug.cgi?id=730925 11858 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11859 118602015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 11861 11862 * gst/vaapi/gstvaapisink.c: 11863 Work around ABBA deadlock between vaapisink and vaapipostproc 11864 vaapisink takes the display lock, then does a gst_buffer_replace which can 11865 take the lock on the gst_vaapi_video_pool. 11866 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes 11867 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free 11868 surfaces, which means that gst_vaapi_surface_create is 11869 called. gst_vaapi_surface_create takes the display lock. 11870 If vaapisink and vaapipostproc are in different threads, and this happens, 11871 you get a deadlock. vaapisink holds the display lock, and wants the 11872 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock 11873 and wants the display lock. 11874 Work around this by releasing the display lock in vaapisink around the 11875 gst_buffer_replace. 11876 https://bugzilla.gnome.org/show_bug.cgi?id=738249 11877 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 11878 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11879 118802015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com> 11881 11882 * gst/vaapi/gstvaapidecodebin.c: 11883 * gst/vaapi/gstvaapidecodebin.h: 11884 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc 11885 https://bugzilla.gnome.org/show_bug.cgi?id=745901 11886 118872015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11888 11889 * gst/vaapi/gstvaapipostproc.c: 11890 vaapipostproc: log negotiated caps 11891 118922015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11893 11894 * gst/vaapi/gstvaapipostproc.c: 11895 vaapipostproc: remove useless debug message 11896 118972015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 11898 11899 * gst/vaapi/gstvaapidecode.c: 11900 vaapidecode: log negotiated src/sink caps 11901 119022015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11903 11904 * gst/vaapi/gstvaapisink.c: 11905 vaapisink: error handling if rendering fails 11906 This patch enhance the code path when an error is found when rendering a 11907 buffer. 11908 If the video meta doesn't contain a surface proxy or a surface, a warning 11909 message is printed. 11910 If the rendering backend fails, a error message is posted in the bus. 11911 https://bugzilla.gnome.org/show_bug.cgi?id=749382 11912 119132015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11914 11915 * gst/vaapi/gstvaapisink.c: 11916 vaapisink: Fix the conditional pad template creation. 11917 119182015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11919 11920 * tests/Makefile.am: 11921 build: Don't build simple-encoder test program if there is no VA Encoding support 11922 This will fix the build error against older VA-APIs <= 0.32 11923 119242015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11925 11926 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 11927 * gst-libs/gst/vaapi/gstvaapicompat.h: 11928 Fix build error for older VA-API versions 11929 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and 11930 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from 11931 VA >= 0.36. 11932 119332015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11934 11935 * gst/vaapi/gstvaapisink.c: 11936 vaapisink: Fix the capsfeature advertisement in padtemplate 11937 This fixes the regression introduced in 64acc74. 11938 If a pad supports multiple set of capsfeatures, it needs to add 11939 multiple equal structures with different feature sets to the caps. 11940 Because caps structures with the same name but with a non-equal 11941 set of caps features are not compatible. 11942 Without this patch, playbin will autoplug xvimagesink instead of vaapisink. 11943 https://bugzilla.gnome.org/show_bug.cgi?id=750095 11944 119452015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk> 11946 11947 * gst/vaapi/gstvaapisink.c: 11948 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay. 11949 https://bugzilla.gnome.org/show_bug.cgi?id=750095 11950 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11951 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 11952 119532015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com> 11954 11955 * gst/vaapi/gstvaapipluginbase.c: 11956 vaapipluginbase: Override downstream allocation reply if no pool 11957 If the downstream replied without a pool, then override it. 11958 https://bugzilla.gnome.org/show_bug.cgi?id=748559 11959 119602015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11961 11962 * gst/vaapi/gstvaapipostproc.c: 11963 * gst/vaapi/gstvaapipostproc.h: 11964 vaapipostproc: add color balance interface 11965 https://bugzilla.gnome.org/show_bug.cgi?id=720376 11966 119672015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11968 11969 * gst-libs/gst/vaapi/gstvaapifilter.c: 11970 * gst-libs/gst/vaapi/gstvaapifilter.h: 11971 * gst/vaapi/gstvaapipostproc.c: 11972 * gst/vaapi/gstvaapipostproc.h: 11973 vaapipostproc: add skin tone enhancement 11974 Added the 'skin-tone-enhancement' property to vaapostproc. 11975 https://bugzilla.gnome.org/show_bug.cgi?id=744088 11976 119772015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11978 11979 * docs/reference/libs/libs-docs.xml.in: 11980 doc: add VA-API reference in freedesktop 11981 119822015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11983 11984 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: 11985 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 11986 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: 11987 patches/videoparsers: rebase all the h264parse patches 11988 In order to avoid the creation of .orig files and break the distcheck target 11989 119902015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 11991 11992 * ext/libvpx/Makefile.am: 11993 build: don't build in parallel libvpx 11994 This fixes the distcheck -j XX target. 11995 119962015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 11997 11998 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 11999 encoder: jpeg: Fix the packed header generation 12000 This is a work-around to satisfy the va-intel-driver. 12001 Normalize the quality factor and scale QM values (only for packed header 12002 generation) similar to what VA-Intel driver is doing . Otherwise the 12003 generated packed headers will be wrong, since the driver itself is 12004 scaling the QM values using the normalized quality factor. 12005 https://bugzilla.gnome.org/show_bug.cgi?id=748335 12006 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12007 120082015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12009 12010 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12011 decoder: h264: fix uninitialized variables in avcC mode. 12012 Fix uninitialized variables when decoding SPS and PPS NAL units from 12013 "codec-data" buffers. This is particularly important when seeking ops 12014 are involved, and the new persistent states are used more often. 12015 https://bugzilla.gnome.org/show_bug.cgi?id=750094 12016 120172015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12018 12019 * gst/vaapi/gstvaapidecode.c: 12020 vaapidecode: remove unneeded casting 12021 And a code-style fix 12022 120232015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12024 12025 * gst/vaapi/gstvaapidecode.c: 12026 vaapidecode: calculate decoding latency 12027 This is a naïve approach to the calculation of the VA-API decoding latency. It 12028 takes into consideration when the frame-rate has some insane value. 12029 https://bugzilla.gnome.org/show_bug.cgi?id=740419 12030 120312015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com> 12032 12033 * configure.ac: 12034 configure: Compiling against libgstgl requires libgstvideo 12035 Fix detection of the GstGL helper headers in uninstalled 12036 builds. 12037 120382015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12039 12040 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 12041 encoder: hevc: Fix the size over-flow for encoded buffer. 12042 The approximation of 6 times compression ratio migh not 12043 work in all cases. Especially when enabling I frames. 12044 Provide large enough size for coded-buffer creation. 12045 120462015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12047 12048 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 12049 encoder: vp8: Fix the size over-flow for encoded buffer. 12050 The approximation of 4 times compression ratio will not 12051 work in all cases. Especially when enabling I frames. 12052 Provide large enough size for coded-buffer creation. 12053 120542015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12055 12056 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 12057 encoder: hevc: fix bug in multi slice encoding. 12058 This is a work-around for satisfying the VA-Intel driver. 12059 The driver only support slices begin from CTU row start address. 12060 Multi-Slice encoding also requires a fix in va-intel-driver: 12061 http://lists.freedesktop.org/archives/libva/2015-May/003351.html 12062 https://bugzilla.gnome.org/show_bug.cgi?id=749854 12063 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12064 120652015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12066 12067 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12068 decoder: h264: add initial support for loss of pictures. 12069 Implement decoding process for gaps in frame_num (8.5.2). This 12070 also somewhat supports unintentional loss of pictures. 12071 https://bugzilla.gnome.org/show_bug.cgi?id=745048 12072 https://bugzilla.gnome.org/show_bug.cgi?id=703921 12073 Original-patch-by: Wind Yuan <feng.yuan@intel.com> 12074 [fixed derivation of POC, ensured clone is valid for reference, 12075 actually fixed detection of gaps in FrameNum by PrevRefFrameNum] 12076 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12077 120782015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12079 12080 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12081 decoder: h264: add support for missing first field. 12082 Try to identify missing first fields too, thus disregarding any 12083 intermediate gaps in frames. We also assume that we keep the same 12084 field sequence, i.e. if previous frames were in top-field-first 12085 (TFF) order, then so are subsequent frames. 12086 Note that insertion of dummy first fields need to operate in two 12087 steps: (i) create the original first field that the current field 12088 will inherit from, and (ii) submit that field into the DPB prior 12089 to initializing the current (other) field POC values but after any 12090 reference flag was set. i.e. copy reference flags from the child 12091 (other field) to the parent (first field). 12092 https://bugzilla.gnome.org/show_bug.cgi?id=745048 12093 120942015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12095 12096 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12097 decoder: h264: add support for missing second field. 12098 Interlaced H.264 video frames always have two fields to decode and 12099 display. However, in some cases, e.g. packet loss, one of the field 12100 can be missing. This perturbs the reference picture marking process, 12101 whereby the number of references available in DPB no longer matches 12102 the expected value. 12103 This patch adds initial support for missing field within a decoded 12104 frame. The current strategy taken is to find out the nearest field, 12105 by POC value, and with the same parity. 12106 https://bugzilla.gnome.org/show_bug.cgi?id=745048 12107 121082015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12109 12110 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12111 decoder: h264: improve tracking of "top-field-first" flag. 12112 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard 12113 does not mandate it. This will be useful for tracking missing fields, and 12114 also for more correct _split_fields() implementation for frames in the DPB. 12115 121162015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12117 12118 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12119 decoder: h264: skip all pictures prior the first I-frame. 12120 Don't try to decode pictures until the first I-frame is received within 12121 the currently active sequence. There is no point is decoding and then 12122 displaying frames with artifacts. 12123 121242015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12125 12126 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12127 decoder: h264: fix processing of EOSEQ NAL. 12128 Fix decoding of end_of_seq() NAL unit so that to not submit the current 12129 picture for decoding again. This is pretty vintage code that dates back 12130 before the existing of the whole decoder units machinery. 12131 One issue that could be arising if that code was kept is that we could 12132 have submitted a picture, and subsequently a GstVideoCodec frame, twice. 12133 Once without the decode_only flag set, and once with that flag set. The 12134 end result is that the GstVideoDecoder would release the codec frame 12135 twice, thus releasing stale data. 12136 In short, the piece of code that is removed by this patch is for once 12137 completely obsolete for a while, and secondly error-prone in corner 12138 cases. 12139 121402013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com> 12141 12142 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12143 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12144 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 12145 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 12146 decoder: add utility function to clone picture objects. 12147 https://bugzilla.gnome.org/show_bug.cgi?id=703921 12148 Signed-off-by: Wind Yuan <feng.yuan@intel.com> 12149 [added cosmetic changes, fixed propagation of "one-field" flag to 12150 children, fixed per-codec clone modes (h264)] 12151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12152 121532015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com> 12154 12155 * gst/vaapi/Makefile.am: 12156 build: don't compile HEVC encoder if not supported 12157 Fix: 12158 (gst-plugin-scanner:16681): GStreamer-WARNING **: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so: undefined symbol: gst_vaapi_encoder_h265_get_default_properties 12159 https://bugzilla.gnome.org/show_bug.cgi?id=749954 12160 Signed-off-by: Alban Browaeys <prahal@yahoo.com> 12161 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12162 121632015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com> 12164 12165 * gst-libs/gst/vaapi/gstvaapicompat.h: 12166 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12167 HEVC: decode: add missing va_dec_hevc header 12168 Signed-off-by: Alban Browaeys <prahal@yahoo.com> 12169 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12170 https://bugzilla.gnome.org/show_bug.cgi?id=749953 12171 121722015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12173 12174 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 12175 mpeg2: fix PTS cache for GOP start. 12176 If the GOP temporal sequence number (TSN) is interpolated from a valid 12177 PTS, then we need to compensate that PTS corresponding to the start of 12178 GOP with the next picture to be decoded, which shall be an I-frame, 12179 based on its sequence number. 12180 https://bugzilla.gnome.org/show_bug.cgi?id=748676 12181 121822015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12183 12184 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 12185 mpeg2: avoid crash when seeking with debug logs 12186 Move down the debug message when the state of the decoder is verified 12187 so the slice header is not NULL. 12188 121892014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com> 12190 12191 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 12192 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek 12193 Reset state and add some checks for safe state to avoid a crash and 12194 a warning after the decoder is destroyed/recreated during a seek. 12195 121962015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12197 12198 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: 12199 * patches/videoparsers/series.frag: 12200 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952 12201 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12202 122032015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12204 12205 * ext/codecparsers: 12206 codecparsers: Update to gst-vaapi-branch commit 20ee952 12207 b7dded3: h264parse: don't consider unknown stream-format as avc 12208 5110ad9: h264parse: fix up handling of input caps corner cases 12209 e51db3e: h264parse: Remove dead code 12210 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing 12211 8482957: h265parse: Fix profile, tier and level setting in caps 12212 4649acb: h265parse: Fix the memory freeing of stored VPS nals 12213 f2beeb7: h265parse: Fix source caps to report cropped dimensions 12214 6886a31: h264parse: Fix profile and level setting in caps 12215 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets 12216 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there 12217 53074fc: build: Upgrade GStreamer dependency to 1.0 12218 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12219 122202015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12221 12222 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12223 HEVC: decode: Replace clip3 implementation with glib CLAMP macro 12224 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12225 122262015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12227 12228 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12229 HEVC: decode: Update Cropping Rectangle 12230 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12231 122322015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12233 12234 * gst/vaapi/Makefile.am: 12235 * gst/vaapi/gstvaapi.c: 12236 * gst/vaapi/gstvaapiencode_h265.c: 12237 * gst/vaapi/gstvaapiencode_h265.h: 12238 HEVC_Encode: Add HEVC(h265) Encoder plugin 12239 https://bugzilla.gnome.org/show_bug.cgi?id=748874 12240 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12241 122422015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12243 12244 * gst-libs/gst/vaapi/Makefile.am: 12245 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c: 12246 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h: 12247 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi 12248 https://bugzilla.gnome.org/show_bug.cgi?id=748874 12249 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12250 122512015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12252 12253 * configure.ac: 12254 HEVC_Encode: build: Check availability of VA APIs for H265 encoding. 12255 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12256 https://bugzilla.gnome.org/show_bug.cgi?id=748874 12257 122582015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12259 12260 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 12261 * gst-libs/gst/vaapi/gstvaapiutils_h265.h: 12262 gstvaapiutils_h265: Add H265 Tier specific utility functions 12263 -- New API: gst_vaapi_utils_h265_get_tier_from_string() 12264 -- New API: gst_vaapi_utils_h265_get_tier_string() 12265 https://bugzilla.gnome.org/show_bug.cgi?id=748874 12266 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12267 122682015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12269 12270 * docs/reference/plugins/Makefile.am: 12271 doc: conditional linking for scanner 12272 Add x11 library only if it is enabled. 12273 https://bugzilla.gnome.org/show_bug.cgi?id=749018 12274 122752015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12276 12277 * docs/reference/plugins/plugins.types: 12278 doc: fix scanner compilation warning 12279 https://bugzilla.gnome.org/show_bug.cgi?id=749018 12280 122812015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12282 12283 * docs/reference/libs/libs-docs.xml.in: 12284 * docs/reference/libs/libs-sections.txt: 12285 doc: update sections and symbols 12286 https://bugzilla.gnome.org/show_bug.cgi?id=749018 12287 122882015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12289 12290 * .gitignore: 12291 * Makefile.am: 12292 * debian.upstream/Makefile.am: 12293 * docs/Makefile.am: 12294 * docs/reference/Makefile.am: 12295 * docs/reference/libs/Makefile.am: 12296 * docs/reference/plugins/Makefile.am: 12297 * ext/Makefile.am: 12298 * ext/libvpx/Makefile.am: 12299 * git.mk: 12300 * gst-libs/Makefile.am: 12301 * gst-libs/gst/Makefile.am: 12302 * gst-libs/gst/base/Makefile.am: 12303 * gst-libs/gst/codecparsers/Makefile.am: 12304 * gst-libs/gst/vaapi/Makefile.am: 12305 * gst/Makefile.am: 12306 * gst/vaapi/Makefile.am: 12307 * patches/Makefile.am: 12308 * patches/videoparsers/Makefile.am: 12309 * pkgconfig/Makefile.am: 12310 * tests/Makefile.am: 12311 build: use git.mk 12312 This patch handles dinamically the gitignore files with git.mk[1]. 12313 Removed the automake variable MAINTAINERCLANFILES in most of the 12314 Makefile.am files since now it is handled by the top one. 12315 1. https://github.com/behdad/git.mk/blob/master/git.mk 12316 https://bugzilla.gnome.org/show_bug.cgi?id=749321 12317 123182015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12319 12320 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12321 wayland: sync() when destroy() 12322 Before pushing a the new frame, the render() method calls sync() to flush the 12323 pending frames. Nonetheless, the last pushed frame never gets rendered, leading 12324 to a memory leak too. 12325 This patch calls sync() in the destroy() to flush the pending frames before 12326 destroying the window. 12327 Also a is_cancelled flag is added. This flag tells to not flush the event 12328 queue again since the method failed previously or were cancelled by the user. 12329 https://bugzilla.gnome.org/show_bug.cgi?id=749078 12330 123312015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de> 12332 12333 * gst-libs/gst/vaapi/gstvaapiwindow.c: 12334 * gst-libs/gst/vaapi/gstvaapiwindow.h: 12335 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 12336 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12337 * gst/vaapi/gstvaapisink.c: 12338 vaapisink: implement unlock/unlock_stop for wayland 12339 Otherwise wl_display_dispatch_queue() might prevent the pipeline from 12340 shutting down. This can happen e.g. if the wayland compositor exits while 12341 the pipeline is running. 12342 Changes: 12343 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow 12344 * splitted the patch removing wl_display_dispatch_queue() 12345 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12346 https://bugzilla.gnome.org/show_bug.cgi?id=747492 12347 https://bugzilla.gnome.org/show_bug.cgi?id=749078 12348 123492015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12350 12351 * configure.ac: 12352 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12353 wayland: wl_display_dispatch_queue() can block forever. 12354 wl_display_dispatch_queue() might prevent the pipeline from shutting 12355 down. This can happen e.g. if the wayland compositor exits while the 12356 pipeline is running. 12357 This patch replaces it with these steps: 12358 - With wl_display_prepare_read() all threads announce their intention 12359 to read. 12360 - wl_display_read_events() is thread save. On threads reads, the other 12361 wait for it to finish. 12362 - With wl_display_dispatch_queue_pending() each thread dispatches its 12363 own events. 12364 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2 12365 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de> 12366 * stripped out the unlock() unlock_stop() logic 12367 * stripped out the poll handling 12368 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12369 https://bugzilla.gnome.org/show_bug.cgi?id=749078 12370 https://bugzilla.gnome.org/show_bug.cgi?id=747492 12371 123722015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12373 12374 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12375 wayland: rename frame for last_frame 12376 Since frame in the private data means the last frame sent, it would 12377 semantically better use last_frame. 12378 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}() 12379 functions. 12380 https://bugzilla.gnome.org/show_bug.cgi?id=749078 12381 123822015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12383 12384 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12385 wayland: use a counter as sync flag 12386 Wayland window has a pointer to the last pushed frame and use it to set the 12387 flag for stopping the queue dispatch loop. This may lead to memory leaks, 12388 since we are not keeping track of all the queued frames structures. 12389 This patch removes the last pushed frame pointer and change the binary flag 12390 for an atomic counter, keeping track of number of queued frames and use it for 12391 the queue dispatch loop. 12392 https://bugzilla.gnome.org/show_bug.cgi?id=749078 12393 123942015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12395 12396 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12397 wayland: decouple wl_buffer from frame 12398 This patch takes out the wayland's buffer from the the frame structure. The 12399 buffer is queued to wayland and destroyed in the "release" callback. The 12400 frame is freed in the surface's "done" callback. 12401 In this way a buffer may be leaked but not the whole frame structure. 12402 - surface 'done' callback is used to throttle the rendering operation and to 12403 unallocate the frame, but not the buffer. 12404 - buffer 'release' callback is used to destroy wl_buffer. 12405 Original-patch-by: Zhao Halley <halley.zhao@intel.com> 12406 * code rebase 12407 * kept the the event_queue for buffer's proxy 12408 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12409 https://bugzilla.gnome.org/show_bug.cgi?id=749078 12410 124112015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12412 12413 * gst/vaapi/gstvaapisink.c: 12414 vaapisink: fix indentation 12415 124162015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12417 12418 * debian.upstream/Makefile.am: 12419 * ext/libvpx/Makefile.am: 12420 * gst-libs/gst/vaapi/Makefile.am: 12421 * gst/vaapi/Makefile.am: 12422 * tests/Makefile.am: 12423 build: fix make distcheck 12424 This patch fixes several issues found when running the `make distcheck` 12425 target: 12426 - In commit c561b8da, the update of gstcompat.h in Makefile.am was 12427 forgotten. 12428 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was 12429 forgotten. 12430 - vpx.build.stamp is not generated at all, only vpx.configure.stamp. 12431 - The make target distcleancheck failed because some autogenerated files 12432 were not handled with the DISTCLEANFILES variable. 12433 Note: `make distcheck -jXX` is not currently supported. 12434 124352015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12436 12437 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: 12438 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 12439 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: 12440 h264parse: update patches with upstream 12441 These patches didn't applied cleanly, breaking the `make distcleancheck` 12442 target. Re-sync'ed the patches against the current git's submodule. 12443 124442015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12445 12446 * tests/simple-encoder.c: 12447 tests: simple-encoder: fix build warnings on 64-bit platforms. 12448 Add a cosmetic change to replace VAAPI buffer with VA buffer and most 12449 importantly fix warnings spitted out during build on 64-bit platforms. 12450 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=] 12451 g_warning ("Invalid VAAPI buffer size (%d)", size); 12452 ^ 12453 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=] 12454 g_warning ("Failed to create output buffer of size %d", size); 12455 ^ 12456 124572015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12458 12459 * gst/vaapi/gstvaapipluginbase.c: 12460 * gst/vaapi/gstvaapipluginutil.c: 12461 * gst/vaapi/gstvaapipluginutil.h: 12462 * gst/vaapi/gstvaapivideocontext.h: 12463 plugins: remove gstreamer-0.10 crumbs 12464 GstVideoContext was used in gstreamer-0.10, which is not supported anymore. 12465 Still, its definition was still in the code. This patch removes it. 12466 https://bugzilla.gnome.org/show_bug.cgi?id=749113 12467 124682015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12469 12470 * tests/Makefile.am: 12471 * tests/simple-encoder.c: 12472 * tests/y4mreader.c: 12473 * tests/y4mreader.h: 12474 tests: add simple-encoder program 12475 This patch adds a simple-encoder test program that uses libgstvaapi for video 12476 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M 12477 format. That can be from a regular file or standard input when the input 12478 filename is "-". 12479 Usage: simple-encoder [options]* <source> 12480 Options: 12481 --output|-o output file name 12482 --codec|-c codec to use for video encoding 12483 --bitrate|-b desired bitrate (kbps) 12484 By default, and as an initial patch, the encoded stream shall conform to the 12485 minimally supported profile. That is "Constrained Baseline Profile" for H.264 12486 and "Simple Profile" for MPEG-2. Though, those are the defaults to be 12487 generated by libgstvaapi. 12488 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/ 12489 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com> 12490 * general code clean-up 12491 * removed the yuv reader thread 12492 * re-wrote the y4m file parser 12493 * updated used API fixed some wrong usage 12494 * fixed a lot of memory leaks 12495 * added the bitrate setting 12496 * keep fps' numerator and denominator 12497 * simplified the thread control 12498 * removed custom logging and use glib 12499 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12500 https://bugzilla.gnome.org/show_bug.cgi?id=719528 12501 125022015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12503 12504 * gst-libs/gst/vaapi/gstvaapiencoder.h: 12505 libs: trivial documentation fix 12506 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER 12507 are not errors, so they do not have the ERROR namespace. 12508 This patch fixes this typo in documentation. 12509 125102015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk> 12511 12512 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 12513 window: Correct prototype to match implementation 12514 On s390x, guintptr and GstVaapiID are not compatible types. The 12515 implementation of gst_vaapi_window_new_internal() and all its callers 12516 seem to assume that its third argument is a GstVaapiID, while the 12517 header gives it guintptr type. 12518 https://bugzilla.gnome.org/show_bug.cgi?id=744559 12519 125202015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12521 12522 * gst/vaapi/gstvaapidecode.c: 12523 * gst/vaapi/gstvaapidecodebin.c: 12524 vaapidecode: add guards for disabled codecs. 12525 Fix link when building plugin elements without HEVC support. e.g. don't 12526 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no 12527 support HEVC enabled in libgstvaapi. 12528 Also, drop disabled codecs from static template caps. Add the missing 12529 HEVC static template caps into vaapidecodebin too. 12530 125312015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12532 12533 * configure.ac: 12534 * gst-libs/gst/vaapi/glibcompat.h: 12535 build: upgrade glib dependency to 2.32 12536 Since bug #745728 was fixed the oldest supported version of GStreamer is 12537 1.2. That GStreamer release requires glib 2.32, so we can upgrade our 12538 requirement too. 12539 This patch changes the required version of glib in configure.ac and removes 12540 the hacks in glibcompat.h 12541 https://bugzilla.gnome.org/show_bug.cgi?id=748698 12542 125432015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12544 12545 * gst/vaapi/gstvaapipluginbase.c: 12546 plugins: check if the pool config is already set 12547 In commit 97b768, a regression for GStreamer 1.2 was introduced: 12548 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the 12549 config option is already set. This patch adds an inline function to 12550 first verify if the option is not in the pool config berfore add it. 12551 125522015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12553 12554 * gst/vaapi/gstvaapipostproc.c: 12555 vaapipostproc: tune up a couple of log messages 12556 In order to reduce the noise, the query type log was downgrade from INFO to 12557 DEBUG, and the shared display address log message is assigned to the object. 12558 125592015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12560 12561 * gst/vaapi/gstvaapipluginbase.c: 12562 plugins: check gst_buffer_pool_set_config() 12563 Check the return value of gst_buffer_pool_set_config(). If it fails an error 12564 message is posted in the bus. 12565 125662015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12567 12568 * gst/vaapi/gstvaapipluginbase.c: 12569 plugins: more specific log message 12570 Be more specific in the log message about the reason of creating a new pool. 12571 125722015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12573 12574 * gst/vaapi/gstvaapipluginbase.c: 12575 plugins: delete unused variable 12576 need_pool is a boolean variable extracted from the allocation query, but it is 12577 not used afterwards. 12578 125792015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com> 12580 12581 * gst/vaapi/gstvaapipluginbase.c: 12582 vaapipluginbase: Update the pool if there was no pool in the downstream reply 12583 Fix regression introduced by bd866479, the query after decide_allocation() 12584 always needs a pool in the first slot. 12585 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 12586 https://bugzilla.gnome.org/show_bug.cgi?id=748559 12587 125882015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com> 12589 12590 * gst/vaapi/gstvaapivideobufferpool.c: 12591 videopool: Free members before chaining up finalize 12592 The finalize function in GObject frees the object memory, so 12593 everything else needs to have been freed before. 12594 https://bugzilla.gnome.org/show_bug.cgi?id=748563 12595 125962015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com> 12597 12598 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 12599 wayland: don't leak the registry proxy 12600 Release the registry proxy when closing the display. 12601 https://bugzilla.gnome.org/show_bug.cgi?id=748564 12602 126032015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12604 12605 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12606 wayland: refactor _sync() method and rename callback 12607 This patch only intends to improve readability: in the method 12608 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a 12609 single while loop. 12610 Also renames the frame_redraw_callback() callback into frame_done_callback(), 12611 which is a bit more aligned to Wayland API. 12612 126132015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de> 12614 12615 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12616 wayland: free frame in buffer release callback 12617 The Wayland compositor may still use the buffer when the frame done 12618 callback is called. 12619 This patch destroys the frame (which contains the buffer) until the 12620 release callback is called. The draw termination callback only controls 12621 the display queue dispatching. 12622 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12623 https://bugzilla.gnome.org/show_bug.cgi?id=747492 12624 126252015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12626 12627 * gst/vaapi/gstvaapidecode.c: 12628 vaapidecode: refactor gst_vaapidecode_internal_flush() 12629 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only 12630 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge() 12631 shares the same error message of gst_vaapidecode_internal_flush() when flush 12632 fails. 12633 126342015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12635 12636 * gst/vaapi/gstvaapidecode.c: 12637 vaapidecode: refactor gst_vaapidecode_destroy() 12638 Add the method gst_vaapidecode_purge(). This method releases the 12639 flushed frames from the decoder. 12640 This new method add more readablity to gst_vaapidecode_destroy() 12641 126422015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com> 12643 12644 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 12645 * gst/vaapi/gstvaapidecode.c: 12646 vaapidecode: Tell the base class about released frames on close 12647 The base class needs to be informed about frames that were still queued 12648 in the decoder on release, otherwise they are leaked. 12649 https://bugzilla.gnome.org/show_bug.cgi?id=747999 12650 126512015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12652 12653 * gst/vaapi/gstvaapidecode.c: 12654 vaapidecode: reduce logging noise 12655 When a frame is rejected by downstream, the message is logged twice. This 12656 patch removes one of those logging messages. 12657 Also, the reject of a frame doesn't mean an alarming error. This patch demotes 12658 the log message from error to info. 12659 126602015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com> 12661 12662 * gst/vaapi/gstvaapidecode.c: 12663 vaapidecode: Use the GstVideoDecoder error reporting function 12664 This way, the decoder won't stop on the first decoding error, 12665 in most cases it can recover after some glitchiness. 12666 https://bugzilla.gnome.org/show_bug.cgi?id=744620 12667 126682015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com> 12669 12670 * gst/vaapi/gstvaapipluginbase.c: 12671 vaapipluginbase: The allocation query can return without a pool 12672 It is possible to return the min/max/size without actually providing 12673 a pool. This way the source knows how many buffers downstream needs. 12674 https://bugzilla.gnome.org/show_bug.cgi?id=748076 12675 126762015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12677 12678 * ext/Makefile.am: 12679 * gst/vaapi/Makefile.am: 12680 * gst/vaapi/gstvaapiparse.c: 12681 * gst/vaapi/gstvaapiparse.h: 12682 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch: 12683 * patches/videoparsers/series.frag: 12684 plugins: Add h265 videoparser element "vaapiparse_h265" 12685 This is a mirror of h265parse element in upstream gst-plugins-bad. 12686 There could be additional patches but all should go to upstream. 12687 This is for making development faster. 12688 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4 12689 126902015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12691 12692 * ext/codecparsers: 12693 codecparsers: Update to gst-vaapi-branch commit 43a0368 12694 45f1c28: codecparser: h265: Fix nal unit size checking 12695 f25987b: codecparser: h265: Calculate crop rectangle dimensions 12696 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal 12697 4c8ec41: Add h265 videoparser plugin source files 12698 126992015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12700 12701 * autogen.sh: 12702 autogen: drop videoutils submodule. 12703 127042015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 12705 12706 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12707 decoder: hevc: cosmetics. 12708 Mostly coding style updates. Avoid integer signess inconsistencies. 12709 Optimize dpb_find_lowest_poc() to align with original h264's decoder. 12710 127112015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12712 12713 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12714 decoder: hevc: Add Support for tiled video decoding 12715 Based up on the value of uniform_spacing_flag in Picture Parameter Set, 12716 the tile column width and tile row height should be calculated. 12717 Equations: 6-1, 6-2 12718 Tiled video Descriptions: 7.3.2.3, 7.4.3.3 12719 127202015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12721 12722 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12723 decoder: hevc: Fix decoding when there are RASL pictures present. 12724 -- Set NoRaslOutputFlag based on EOS and EOB Nal units 12725 -- Fix PicOutputFlag setting for RASL picture 12726 -- Fix prev_poc_lsb/prev_poc_msb calculation 12727 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture 12728 -- Fixed couple of crashes and added cosmetics 12729 127302015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk> 12731 12732 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 12733 display: drm: fix race condition setting device type 12734 There is a race condition where g_drm_device_type can be left set to 12735 DRM_DEVICE_RENDERNODES when it shouldn't. 12736 If thread 1 comes in and falls into the last else statement setting up both 12737 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES), 12738 it sets g_drm_device_type = RENDERNODES. 12739 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues 12740 up that type to be tried but then encounters the lock and has to wait until the 12741 first thread finishes. Once the lock is acquired it will then proceed to ONLY try 12742 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future 12743 attempts will only try RENDERNODES. 12744 So to avoid this situation I have simply moved the acquisition of the lock higher 12745 up in the attached patch. 12746 https://bugzilla.gnome.org/show_bug.cgi?id=747914 12747 127482015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com> 12749 12750 * gst/vaapi/gstvaapipostproc.c: 12751 vaapipostproc: Don't create filter on caps query 12752 The problem with this is that creating the filter causes the display to 12753 be selected, and the caps query happens while linking the element. So, 12754 if the downstream or upstream element is using a specific display 12755 object, it won't be propagated correctly to the postproc as it already 12756 has a display at this point. 12757 https://bugzilla.gnome.org/show_bug.cgi?id=747945 12758 127592015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com> 12760 12761 * gst-libs/gst/vaapi/gstvaapivideopool.c: 12762 videopool: Release lock while allocating new object 12763 The video pool can be accessed with the display lock held, for example, 12764 when releasing a buffer from inside vaapisink_render, but allocating 12765 a new object can may also take the display lock. Which means a possible 12766 deadlock. 12767 https://bugzilla.gnome.org/show_bug.cgi?id=747944 12768 127692015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12770 12771 * gst/vaapi/gstvaapisink.c: 12772 vaapisink: use GstVideoSink vmethod show_frame() 12773 vaapisink inherits from GstVideoSink, in order to use its functionality (such 12774 as ::show-preroll-frame property), we should use its vmethod show_frame(), 12775 rather than call ourselves render() and preroll(). 12776 127772015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12778 12779 * gst/vaapi/gstvaapisink.c: 12780 * gst/vaapi/gstvaapisink.h: 12781 vaapisink: add 'handoff' signal 12782 This patch adds the signal ::handoff and the property signal-handoffs. If the 12783 property is set TRUE, the signal ::handoff is emitted just after the buffer is 12784 rendered. 12785 Based on Zhao Halley <halley.zhao@intel.com> 12786 https://bugzilla.gnome.org/show_bug.cgi?id=747905 12787 127882015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12789 12790 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12791 HEVC: silence the compiler 12792 Fixed a couple of clang complains. 12793 127942015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de> 12795 12796 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 12797 wayland: destroy vpp buffer pool on resize 12798 Otherwise the old buffers with the old size are used. 12799 https://bugzilla.gnome.org/show_bug.cgi?id=747491 12800 128012015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12802 12803 * configure.ac: 12804 * gst-libs/gst/vaapi/Makefile.am: 12805 build: don't compile HEVC if not supported 12806 HEVC decoding was added recently libva-1.5. 12807 This patch avoids HEVC decoding support in libgstvaapi if it is not available 12808 in the installed libva. 12809 https://bugzilla.gnome.org/show_bug.cgi?id=747831 12810 128112015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12812 12813 * gst/vaapi/gstvaapidecode.c: 12814 vaapidecode: Update Author name in plugin metadata 12815 128162015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12817 12818 * gst/vaapi/gstvaapidecode.c: 12819 plugins: Add HEVC decoder 12820 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12821 128222015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12823 12824 * gst-libs/gst/vaapi/Makefile.am: 12825 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c: 12826 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h: 12827 HEVC: Add HEVC(h265) decoder to core libgstvaapi 12828 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12829 128302015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12831 12832 * gst-libs/gst/vaapi/Makefile.am: 12833 * gst-libs/gst/vaapi/gstvaapiutils_h265.c: 12834 * gst-libs/gst/vaapi/gstvaapiutils_h265.h: 12835 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h: 12836 HEVC: Add codec utility methods to core libgstvaapi 12837 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12838 128392015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12840 12841 * gst-libs/gst/vaapi/gstvaapiprofile.c: 12842 * gst-libs/gst/vaapi/gstvaapiprofile.h: 12843 HEVC: gstvaapiprofile: Add profile definitions 12844 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12845 128462015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12847 12848 * configure.ac: 12849 HEVC: build: Check availability of h265 decoder APIs 12850 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12851 128522015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12853 12854 * configure.ac: 12855 * ext/Makefile.am: 12856 * gst-libs/gst/codecparsers/Makefile.am: 12857 HEVC: Allow to build h265 codecparser internally 12858 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12859 128602015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12861 12862 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 12863 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h: 12864 * gst-libs/gst/vaapi/gstvaapisurface.c: 12865 guard buffer export API if not available 12866 The support for buffer exports in VA-API was added in version 0.36. These 12867 interfaces are for interop with EGL, OpenCL, etc. 12868 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi 12869 has to support VA-API versions ranging from 0.30.4, which doesn't support it. 12870 This patch guards all the buffer exports handling (and dmabuf allocator) if 12871 the detected VA-API version is below 0.36. 12872 https://bugzilla.gnome.org/show_bug.cgi?id=746405 12873 128742015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12875 12876 * ext/codecparsers: 12877 codecparsers: Update to gst-vaapi-branch commit 9bc72b0 12878 767bf22: codecparsers: h265: add helpers to convert quantization matrices 12879 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header 12880 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation 12881 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio 12882 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB 12883 128842014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de> 12885 12886 * gst/vaapi/gstvaapidecode.c: 12887 vaapidecode: unref video codec frame twice 12888 We get one reference when the frame is passed to decode_handle_frame() 12889 and create another one in gst_vaapi_decoder_push_frame(). 12890 Usually the frame is handled in gst_vaapidecode_push_decoded_frame(). 12891 Here the frame is always released twice: 12892 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or 12893 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref(). 12894 In gst_vaapidecode_reset_full() both references to the frame must be 12895 released as well. 12896 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12897 https://bugzilla.gnome.org/show_bug.cgi?id=743226 12898 128992015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12900 12901 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 12902 libs: remove unused variables 12903 clang reports these unused variables. Let's get rid of them. 12904 This patch is a missing part of commit c82e5173 12905 https://bugzilla.gnome.org/show_bug.cgi?id=747312 12906 129072015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12908 12909 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 12910 decoder: mpeg4: remove an spurious comparison 12911 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be 12912 less than zero. Hence this pre-condition test is a no-op. This patch removes 12913 that code. 12914 https://bugzilla.gnome.org/show_bug.cgi?id=747312 12915 129162015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12917 12918 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 12919 encoder: h264: casts slice_param->slice_type 12920 slice_type in slice_param is defined as (char *), but it is compared against a 12921 signed integer. clang complains about this comparison. 12922 This patch casts the variable. 12923 https://bugzilla.gnome.org/show_bug.cgi?id=747312 12924 129252015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12926 12927 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 12928 encoder: avoid GstVaapiCodedBuffer redefinition 12929 The symbol GstVaapiCodedBuffer is already defined in 12930 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by 12931 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition. 12932 This patch removes that redefinition. 12933 https://bugzilla.gnome.org/show_bug.cgi?id=747312 12934 129352015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12936 12937 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 12938 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 12939 libs: remove unused variables 12940 clang reports these unused variables. Let's get rid of them. 12941 https://bugzilla.gnome.org/show_bug.cgi?id=747312 12942 129432015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12944 12945 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 12946 encoder: mpeg2: use fabsf() instead of abs() 12947 The member value in frame_rate_tab is float, the result of the abs() function 12948 should be float too. But abs() only manages integers. 12949 This patch replaces abs() with fabsf() to handle correctly the possible floats 12950 values. 12951 https://bugzilla.gnome.org/show_bug.cgi?id=747312 12952 129532015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12954 12955 * gst-libs/gst/vaapi/gstvaapidecoder.c: 12956 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 12957 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 12958 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 12959 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 12960 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME 12961 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum 12962 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains. 12963 https://bugzilla.gnome.org/show_bug.cgi?id=747312 12964 129652015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12966 12967 * README: 12968 Update README 12969 129702015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12971 12972 * .gitmodules: 12973 * README: 12974 Changing source code download links from https://gitorious to https://github 12975 -- gitmodules: Change gstreamer-codecparsers submodule source download link 12976 -- README: Change the gstreamer-vaapi webpage link 12977 129782015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12979 12980 * ext/codecparsers: 12981 codecparsers: update to gst-vaapi-branch commit 1f792e4 12982 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader() 12983 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places 12984 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek 12985 2b92a67: h264parse: reset the parser information when caps changes 12986 05eee86: codecparsers: Indent file 12987 e27a38b: codecparsers: Add READ_UE_MAX macro 12988 2036471: Constify some static arrays everywhere 12989 129902015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 12991 12992 * gst/vaapi/gstvaapivideoconverter_glx.c: 12993 * gst/vaapi/gstvaapivideoconverter_x11.c: 12994 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a 12995 129962015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 12997 12998 * gst/vaapi/gstvaapidecode.c: 12999 * gst/vaapi/gstvaapidecodebin.c: 13000 * gst/vaapi/gstvaapiencode_h264.c: 13001 * gst/vaapi/gstvaapiencode_jpeg.c: 13002 * gst/vaapi/gstvaapiencode_mpeg2.c: 13003 * gst/vaapi/gstvaapiencode_vp8.c: 13004 * gst/vaapi/gstvaapipluginbase.c: 13005 * gst/vaapi/gstvaapipluginutil.c: 13006 * gst/vaapi/gstvaapipluginutil.h: 13007 * gst/vaapi/gstvaapipostproc.c: 13008 * gst/vaapi/gstvaapisink.c: 13009 * gst/vaapi/gstvaapivideobuffer.c: 13010 * gst/vaapi/gstvaapivideobufferpool.c: 13011 * gst/vaapi/gstvaapivideocontext.c: 13012 * gst/vaapi/gstvaapivideocontext.h: 13013 * gst/vaapi/gstvaapivideoconverter_glx.h: 13014 * gst/vaapi/gstvaapivideoconverter_x11.h: 13015 * gst/vaapi/gstvaapivideomemory.h: 13016 * gst/vaapi/gstvaapivideometa_texture.c: 13017 Removal of gstreamer-1.0 support 13018 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release. 13019 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi. 13020 This patch removes all the pre-processor conditional code compilation guarded 13021 for gstreamer-1.0. 13022 Thus, all the video converters were removed too. 13023 https://bugzilla.gnome.org/show_bug.cgi?id=745728 13024 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13025 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13026 130272015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13028 13029 * gst-libs/gst/vaapi/gstcompat.h: 13030 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 13031 * gst-libs/gst/vaapi/gstvaapiprofile.c: 13032 * gst-libs/gst/vaapi/sysdeps.h: 13033 * gst/vaapi/gstcompat.h: 13034 * gst/vaapi/gstvaapi.c: 13035 * gst/vaapi/gstvaapidecode.c: 13036 * gst/vaapi/gstvaapidecodebin.c: 13037 * gst/vaapi/gstvaapiencode.c: 13038 * gst/vaapi/gstvaapiencode_h264.c: 13039 * gst/vaapi/gstvaapiencode_jpeg.c: 13040 * gst/vaapi/gstvaapiencode_mpeg2.c: 13041 * gst/vaapi/gstvaapiencode_vp8.c: 13042 * gst/vaapi/gstvaapiparse.c: 13043 * gst/vaapi/gstvaapipluginbase.c: 13044 * gst/vaapi/gstvaapipluginutil.c: 13045 * gst/vaapi/gstvaapipostproc.c: 13046 * gst/vaapi/gstvaapisink.c: 13047 * gst/vaapi/gstvaapiuploader.c: 13048 * gst/vaapi/gstvaapivideobuffer.c: 13049 * gst/vaapi/gstvaapivideobufferpool.c: 13050 * gst/vaapi/gstvaapivideocontext.c: 13051 * gst/vaapi/gstvaapivideoconverter_glx.c: 13052 * gst/vaapi/gstvaapivideoconverter_x11.c: 13053 * gst/vaapi/gstvaapivideomemory.c: 13054 * gst/vaapi/gstvaapivideometa.c: 13055 * gst/vaapi/gstvaapivideometa_texture.c: 13056 * tests/codec.c: 13057 update and move gstcompat.h 13058 The purpose of gstcompat.h is to couple the API differences among 13059 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code 13060 in this compatibility layer shall be removed. 13061 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites 13062 appear in the future, but it shall live in gst/vaapi, not in gst-libs. 13063 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi. 13064 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all 13065 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h 13066 https://bugzilla.gnome.org/show_bug.cgi?id=745728 13067 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13068 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13069 130702015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13071 13072 * configure.ac: 13073 * gst/vaapi/Makefile.am: 13074 autotools: remove gstreamer-1.0 support 13075 This patch only removes the support of gstreamer-1.0 in the autotools 13076 scripts. No other files are touched. 13077 In the automake file all the converters were deprecated. 13078 https://bugzilla.gnome.org/show_bug.cgi?id=745728 13079 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13080 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13081 130822015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13083 13084 * .gitmodules: 13085 * ext/Makefile.am: 13086 * ext/videoutils: 13087 Remove the gstreamer-videoutils submodule 13088 130892015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13090 13091 * configure.ac: 13092 * gst-libs/gst/Makefile.am: 13093 * gst-libs/gst/vaapi/Makefile.am: 13094 * gst-libs/gst/video/Makefile.am: 13095 * gst/vaapi/Makefile.am: 13096 * tests/Makefile.am: 13097 Remove libgstvaapi-videoutils.so 13098 This library was intended to add the base classes for video decoders which 13099 where not included in gstreamer-0.10. 13100 Since the support of gstreamer-0.10 is deprecated those classes are not 13101 required, thus the whole library is removed. 13102 https://bugzilla.gnome.org/show_bug.cgi?id=745728 13103 https://bugzilla.gnome.org/show_bug.cgi?id=732666 13104 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13105 131062015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13107 13108 * configure.ac: 13109 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c: 13110 * gst-libs/gst/vaapi/gstvaapiutils.c: 13111 * tests/test-subpicture.c: 13112 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro 13113 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not 13114 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is 13115 deprecated these guards are not required. 13116 https://bugzilla.gnome.org/show_bug.cgi?id=745728 13117 https://bugzilla.gnome.org/show_bug.cgi?id=732666 13118 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13119 131202015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13121 13122 * gst-libs/gst/vaapi/gstcompat.h: 13123 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c: 13124 * gst-libs/gst/vaapi/gstvaapidecoder.c: 13125 * gst-libs/gst/vaapi/gstvaapiimage.c: 13126 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 13127 * gst-libs/gst/vaapi/video-format.c: 13128 * gst-libs/gst/vaapi/video-format.h: 13129 * gst/vaapi/gstvaapi.c: 13130 * gst/vaapi/gstvaapidecode.c: 13131 * gst/vaapi/gstvaapidecodebin.c: 13132 * gst/vaapi/gstvaapidownload.c: 13133 * gst/vaapi/gstvaapidownload.h: 13134 * gst/vaapi/gstvaapiencode.c: 13135 * gst/vaapi/gstvaapiencode_h264.c: 13136 * gst/vaapi/gstvaapiencode_jpeg.c: 13137 * gst/vaapi/gstvaapiencode_mpeg2.c: 13138 * gst/vaapi/gstvaapiencode_vp8.c: 13139 * gst/vaapi/gstvaapiparse.c: 13140 * gst/vaapi/gstvaapipluginbase.c: 13141 * gst/vaapi/gstvaapipluginbase.h: 13142 * gst/vaapi/gstvaapipluginutil.c: 13143 * gst/vaapi/gstvaapipluginutil.h: 13144 * gst/vaapi/gstvaapipostproc.c: 13145 * gst/vaapi/gstvaapisink.c: 13146 * gst/vaapi/gstvaapiupload.c: 13147 * gst/vaapi/gstvaapiupload.h: 13148 * gst/vaapi/gstvaapiuploader.c: 13149 * gst/vaapi/gstvaapivideobuffer.c: 13150 * gst/vaapi/gstvaapivideoconverter_glx.c: 13151 * gst/vaapi/gstvaapivideoconverter_x11.c: 13152 * gst/vaapi/gstvaapivideometa.c: 13153 * gst/vaapi/gstvaapivideometa.h: 13154 * tests/test-filter.c: 13155 * tests/test-subpicture.c: 13156 Removal of gstreamer-0.10 support 13157 This patch removes all the pre-processor conditional code compilation guarded 13158 for gstreamer-0.10. 13159 https://bugzilla.gnome.org/show_bug.cgi?id=745728 13160 https://bugzilla.gnome.org/show_bug.cgi?id=732666 13161 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13162 131632015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13164 13165 * configure.ac: 13166 * debian.upstream/control.in: 13167 * gst-libs/gst/video/Makefile.am: 13168 * gst/vaapi/Makefile.am: 13169 autotools: remove gstreamer-0.10 support 13170 This patch only removes the support of gstreamer-0.10 in the autotools 13171 scripts. No other files are touched. 13172 The configuration parameter --gstreamer-api was deleted since now it is always 13173 auto-detected. 13174 The verification of vmethod query in GstBaseSinkClass was removed since it was 13175 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and 13176 its format flags. 13177 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0 13178 remained. 13179 The automake files were changed accordingly. 13180 Removed, in debian/control, the vaapiupload and vaapidownload descriptions. 13181 https://bugzilla.gnome.org/show_bug.cgi?id=732666 13182 https://bugzilla.gnome.org/show_bug.cgi?id=745728 13183 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13184 131852015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13186 13187 * gst/vaapi/gstvaapidecode.c: 13188 vaapidecode: add drain() vmethod 13189 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder 13190 class. This patch implements this new method. 13191 https://bugzilla.gnome.org/show_bug.cgi?id=742922 13192 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13193 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13194 131952015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13196 13197 * gst/vaapi/gstvaapidecode.c: 13198 vaapidecode: remove vmethod reset() 13199 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped, 13200 this patch removes the method reset() which was deprecated in GStreamer 1.2. 13201 https://bugzilla.gnome.org/show_bug.cgi?id=742922 13202 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13203 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13204 132052015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13206 13207 * gst/vaapi/gstvaapidecode.c: 13208 vaapidecode: handle flush() vmethod 13209 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated 13210 and flush() was added. 13211 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or 13212 superior. Otherwise, reset() is set. 13213 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush() 13214 was renamed to gst_vaapidecode_internal_flush(). 13215 2) The new vmethod flush() always do a hard full reset. 13216 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to 13217 gather all collected data with gst_video_decoder_have_frame() 13218 https://bugzilla.gnome.org/show_bug.cgi?id=742922 13219 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13220 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13221 132222015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13223 13224 * gst/vaapi/gstvaapidecode.c: 13225 vaapidecode: call the correct query function 13226 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4) 13227 a bug was introduced: when calling the parent's query function of the 13228 src pad, the one of the sink pad is called instead. This patch fixes 13229 this issue. 13230 https://bugzilla.gnome.org/show_bug.cgi?id=746248 13231 132322015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13233 13234 * .gitmodules: 13235 gitmodules: Use https:// url instead of git:// for submodules. 13236 Gitorious is failing to clone repositories over git:// url. 13237 132382015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com> 13239 13240 * gst-libs/gst/vaapi/gstvaapidisplay.c: 13241 vaapidisplay: mark X11 display as compatible with EGL 13242 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl 13243 gst-launch-1.0 ... ! vaapidecode ! glimagesink 13244 https://bugzilla.gnome.org/show_bug.cgi?id=745902 13245 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13246 132472015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com> 13248 13249 * gst/vaapi/gstvaapidecode.c: 13250 vaapidecode: Don't crash if a buffer outlives the decoder 13251 Sometimes, for example, when switching video streams but keeping 13252 the same sink, the surface will be released after the decoder is 13253 stopped and replaced. This caused a crash because the release 13254 callback was called on an invalid pointer. 13255 The patch adding an additional reference to the decoder object in the buffer. 13256 https://bugzilla.gnome.org/show_bug.cgi?id=745189 13257 Signed-off-by: Olivier Crete <olivier.crete@collabora.com> 13258 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13259 132602015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13261 13262 * gst/vaapi/gstvaapidecode.c: 13263 vaapidecode: clean-ups (indentation, drop unused variables) 13264 132652015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13266 13267 * gst/vaapi/gstvaapidecode.c: 13268 vaapidecode: use the query virtual methods in 1.4 13269 GstVideoDecoder, the base class of vaapidecode, added support for 13270 pad queries as virtual methods. This patch enables the use of that 13271 support, while keeping support for lower versions of gstreamer. 13272 This patch is important because GstVideoDecoder takes care of other 13273 queries that might be important in the pipeline managing. 13274 v2: 1) rebase to current master 13275 2) fix indentation with gst-indent 13276 3) simplify the patch layout 13277 4) fix the context query 13278 5) initialise the filter to NULL 13279 6) improve the query log message for gst-1.2 13280 https://bugzilla.gnome.org/show_bug.cgi?id=744406 13281 132822015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13283 13284 * gst/vaapi/gstvaapipostproc.c: 13285 * gst/vaapi/gstvaapipostproc.h: 13286 vaapipostproc: always activate buffer pool 13287 The vaapipostproc has a proxy flag to know if the the buffer pool is 13288 already active. But this fails in some situations where it is needed 13289 to renegotiate the buffer pool. 13290 This patch removes that flag so the renegotiation is done whenever is 13291 required. 13292 https://bugzilla.gnome.org/show_bug.cgi?id=745535 13293 132942015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13295 13296 * gst/vaapi/gstvaapisink.c: 13297 vaapisink: fix minor memory leak in debug mode. 13298 The gst_video_colorimetry_to_string() function returns a newly created 13299 string that represents the GstVideoColorimetry value. So, that needs 13300 to be released after usage, in e.g. GST_DEBUG(). 13301 133022015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13303 13304 * gst/vaapi/gstvaapidecodebin.h: 13305 vaapidecodebin: Avoid usage of "__" prefix in macro names 13306 Avoiding "__" prefix usage in Header File Guards as per 13307 C standard recommendation. 13308 133092015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13310 13311 * gst/vaapi/gstvaapi.c: 13312 plugins: Disable vaapidecodebin for GStreamer < 1.4 13313 There are autoplugging issues in GStreamer-1.2. 13314 Lets disable vaapidecodebin untill we get some workarounds for this. 13315 133162015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13317 13318 * gst/vaapi/Makefile.am: 13319 * gst/vaapi/gstvaapi.c: 13320 * gst/vaapi/gstvaapidecodebin.c: 13321 * gst/vaapi/gstvaapidecodebin.h: 13322 plugins: Add a vaapidecodebin element 13323 Add a "vaapidecodebin" element to vaapi plugins. 13324 Child Elements: "vaapidecode ! queue ! vaapipostproc" 13325 The Reasons for implementing a new bin element: 13326 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin 13327 with out any dependency to upstream gstreamer. 13328 This is to overcome the *unacceptable* delay in upstream gstreamer to get new 13329 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182. 13330 Also customers using older gstreamer versions (1.2 and 1.4) will get the 13331 benefit of autoplugging, hardware accelerated deinterlacing support etc. 13332 -- Help to maintain a single thread implementation in vaapidecode. 13333 This will result a dead-lock free vaapidecode in most of the cases. 13334 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605 13335 https://bugzilla.gnome.org/show_bug.cgi?id=745216 13336 133372015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13338 13339 * gst/vaapi/gstvaapidecode.c: 13340 vaapidecode: re-indent (gst-indent) gstvaapidecode.c 13341 133422015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 13343 13344 * gst/vaapi/gstvaapidecode.c: 13345 * gst/vaapi/gstvaapidecode.h: 13346 vaapidecode: Switch back to Single thread implementation 13347 Because the decoder uses the thread from handle_frame() to decode a frame, 13348 the src pad task creates an unsolveable AB-BA deadlock between 13349 handle_frame() waiting for a free surface and decode_loop() pushing 13350 decoded frames out. 13351 Instead, have handle_frame() take responsibility for pushing surfaces, 13352 and remove the deadlock completely. If you need a separate thread 13353 downstream, you can insert a queue between vaapidecode and its downstream 13354 to get one. 13355 Another justification for the single thread implementation is, 13356 there are two many point of locking in gstreamer-vaapi's current 13357 implementation which can lead to deadlocks. 13358 https://bugzilla.gnome.org/show_bug.cgi?id=742605 13359 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 13360 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13361 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13362 133632015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13364 13365 * gst/vaapi/gstvaapipluginbase.c: 13366 plugins: fix detection of upstream v4l2src element. 13367 Improve check for upstream element that requires DMABUF buffer pool, 13368 e.g. v4l2src element. In particular, make sure to traverse through 13369 any additional capsfilter for instance. 13370 Note: the traversal to the top-most upstream element could be made 13371 more generic, but we are insofar only interested in supporting pipes 13372 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit 13373 specification for a desired video camera format, or resolution. 13374 133752015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13376 13377 * gst/vaapi/gstvaapivideomemory.c: 13378 plugins: fix allocation of DMABUF memory. 13379 The dmabuf allocator would close the DMABUF handle passed in the init 13380 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that 13381 to avoid a double close, ultimately in the underlying driver that owns 13382 the DMABUF handle. 13383 133842015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13385 13386 * gst/vaapi/gstvaapidecode.c: 13387 vaapidecode: keep src caps and output state in sync 13388 vaapidecode keeps an output state that use the format 13389 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps 13390 for a correct negotiation. 13391 I don't see the rational behind this decoupling, it looks like 13392 unnecessary complexity. This patch simplify this logic keeping 13393 in sync the output state and the src caps. 13394 This patch improves the readability of the function 13395 gst_vaapidecode_update_src_caps() and simplify its logic. Also, 13396 the patch validates if the buffer pool has the configuration for 13397 the GL texture upload meta, in order to set the caps feature 13398 meta:GLTextureUpload. Otherwise, the I420 format is set back. 13399 https://bugzilla.gnome.org/show_bug.cgi?id=744618 13400 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13401 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13402 134032015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13404 13405 * gst/vaapi/gstvaapidecode.c: 13406 vaapidecode: upload meta only if feature and allocation 13407 When vaapidecode finishes the decoding of a frame and pushes it, 13408 if, in the decide_allocation() method, it is determined if the 13409 next element supports the GL texture upload meta feature, the 13410 decoder adds the buffer's meta. 13411 Nonetheless, in the same spirit of the commit 71d3ce4d, the 13412 determination if the next element supports the GL texture upload 13413 meta needs to check both the preferred caps feature *and* if the 13414 allocation query request the API type. 13415 This patch, first removes the unused variable need_pool, and 13416 determines the attribute has_texture_upload_meta using the 13417 preferred caps feature *and* the allocation query. 13418 Also, the feature passed to GstVaapPluginBase is not longer 13419 determined by has_texture_upload_meta, but by the computed 13420 preferred one. 13421 https://bugzilla.gnome.org/show_bug.cgi?id=744618 13422 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13423 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13424 134252015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13426 13427 * gst/vaapi/gstvaapidecode.c: 13428 * gst/vaapi/gstvaapidecode.h: 13429 * gst/vaapi/gstvaapipluginutil.c: 13430 * gst/vaapi/gstvaapipluginutil.h: 13431 vaapidecode: delayed src caps negotiation 13432 Currently the src caps are set immediately after the sink caps are set, but in 13433 that moment the pipeline might not fully constructed and the video sink has 13434 not negotiated its supported caps and features. As a consequence, in many cases 13435 of playback, the least optimized caps feature is forced. This is partially the 13436 responsible of bug #744039. 13437 Also, vaapidecode doesn't attend the reconfigure events from downstream, 13438 which is a problem too, since the video sink can be changed with different 13439 caps features. 13440 This patch delays the src caps, setting them until the first frame arrives to 13441 the decoder, assuming until that very moment the whole pipeline is already 13442 negotiated. Particularly, it checks if the src pad needs to be reconfigured, 13443 as a consequence of a reconfiguration event from downstream. 13444 A key part of this patch is the new GstVaapiCapsFeature 13445 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad 13446 doesn't have a peer yet. Also, for a better report of the caps allowed 13447 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps() 13448 instead of gst_pad_peer_query_caps() when looking for the preferred feature. 13449 v3: move the input_state unref to close(), since videodecoder resets at 13450 some events such as navigation. 13451 v4: a) the state_changed() callback replaces the input_state if the media 13452 changed, so this case is also handled. 13453 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is 13454 always the input_state, the parameter were removed. 13455 c) there were a lot of repeated code handling the input_state, so I 13456 refactored it with the function gst_vaapi_decode_input_state_replace(). 13457 https://bugzilla.gnome.org/show_bug.cgi?id=744618 13458 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com> 13459 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13460 134612015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13462 13463 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 13464 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 13465 encoder: h264: add support for more than 2 views 13466 Add support for H.264 MVC Multiview High profile encoding with 13467 more than 2 views. All views within the same accesss unit are 13468 provided in increasing order of view order index (VOIdx). 13469 Upto 10 view are supported for now. 13470 A new property "view-ids" has been provided for the plugins to 13471 set the view ids (which is an array of guint values) to be used 13472 for mvc encoding. 13473 https://bugzilla.gnome.org/show_bug.cgi?id=732453 13474 134752015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13476 13477 * gst/vaapi/gstvaapipluginbase.c: 13478 plugins: upload meta only if feature and allocation 13479 Working on bug #743687, I realized that vaapidecode always adds to its buffer 13480 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if 13481 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE. 13482 Nevertheless, there are occasions where the query has the API type, but the 13483 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta. 13484 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its 13485 buffer pool configuration, and adds its buffer's meta to each output buffer, 13486 even if the negotiated caps feature is memory:SystemMemory with I420 color 13487 format. 13488 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map 13489 that relates caps <-> GL upload method. If it receives a buffer with color 13490 format I420, it assumes that it doesn't have a texture upload meta, because 13491 only those with RGB color format has it. Our buffers, with I420 format, say 13492 that they have the upload meta too. In that case the mapped method is a dummy 13493 one which does nothing. I reported this issue in bug #744039 (the patch, 13494 obviously, was rejected). 13495 This patch workarounds the problem: the buffer pool's configuration option 13496 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the 13497 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated 13498 caps feature is meta:GstVideoGLTextureUploadMeta. 13499 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and 13500 in all they seem to work correctly. 13501 https://bugzilla.gnome.org/show_bug.cgi?id=744618 13502 [adapted to fit current EGL changes] 13503 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13504 135052015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13506 13507 * gst-libs/gst/vaapi/gstvaapitexture.c: 13508 * gst-libs/gst/vaapi/gstvaapitexture.h: 13509 * gst-libs/gst/vaapi/gstvaapitexture_glx.c: 13510 * gst-libs/gst/vaapi/gstvaapitexture_priv.h: 13511 * gst/vaapi/gstvaapivideometa_texture.c: 13512 plugins: add support for GstVideoGLTextureOrientation. 13513 Add support for GstVideoGLTextureOrientation modes. In particular, 13514 add orientation flags to the GstVaapiTexture wrapper and the GLX 13515 implementations. Default mode is that texture memory is laid out 13516 with top lines first, left row first. Flags indicate whether the 13517 X or Y axis need to be inverted. 13518 135192015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13520 13521 * gst/vaapi/gstvaapidecode.c: 13522 * gst/vaapi/gstvaapipluginbase.c: 13523 * gst/vaapi/gstvaapipluginutil.c: 13524 * gst/vaapi/gstvaapipluginutil.h: 13525 * gst/vaapi/gstvaapipostproc.c: 13526 * gst/vaapi/gstvaapivideometa_texture.c: 13527 plugins: add support for BGRA textures. 13528 Some frameworks (EFL) expect BGRA textures for storage. However, 13529 adding support for that broadly into GStreamer framework implies 13530 two kinds of hacks: (i) libgstgl helpers currently do not support 13531 BGRA textures correctly, (ii) we need to better parse downstream 13532 suggested caps and intersect them with what the VA plugin elements 13533 can offer to them for GL texturing. 13534 135352015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13536 13537 * gst/vaapi/gstvaapipluginutil.c: 13538 plugins: fix support for Wayland/EGL running alongside X11. 13539 When multiple display servers are available, the glimagesink element 13540 (from GStreamer 1.4) may not be able to derive a global display in 13541 Wayland. Rather, a "window"-specific display is created. In this case, 13542 the GstGLDisplay handle available through GstGLContext is invalid. 13543 So, try to improve heuristics for display server characterisation in 13544 those particular situations. 13545 135462015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13547 13548 * configure.ac: 13549 * gst/vaapi/Makefile.am: 13550 * gst/vaapi/gstvaapidecode.c: 13551 * gst/vaapi/gstvaapipluginbase.c: 13552 * gst/vaapi/gstvaapipluginutil.c: 13553 * gst/vaapi/gstvaapivideobufferpool.c: 13554 * gst/vaapi/gstvaapivideometa_texture.c: 13555 plugins: add initial support for EGL. 13556 Add initial support for EGL through GstVideoGLTextureUploadMeta. 13557 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the 13558 downstream supplied GstGLContext configuration, i.e. use its native 13559 display handle to create a GstVaapiDisplay of type X11 or Wayland ; 13560 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL 13561 wrapper. 13562 https://bugzilla.gnome.org/show_bug.cgi?id=741079 13563 135642014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13565 13566 * gst/vaapi/gstvaapivideometa_texture.c: 13567 plugins: track video texture size changes. 13568 Sync video texture sizes to GstVideoGLTextureUploadMeta private date, 13569 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we 13570 now update the texture size from the GstVideoMeta, if any, or reset 13571 to some defaults otherwise. 13572 135732014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13574 13575 * gst/vaapi/gstvaapipluginbase.c: 13576 * gst/vaapi/gstvaapipluginbase.h: 13577 * gst/vaapi/gstvaapipluginutil.c: 13578 plugins: ensure VA display matches GL context expectations. 13579 If a GstGLContext is supplied by the downstream element, then make 13580 sure that the VA plugin element gets a compatible display to what 13581 is requested by the GL context. e.g. re-allocate a VA/GLX display 13582 when a GLX context is provided by the downstream element. 13583 135842014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13585 13586 * configure.ac: 13587 * gst/vaapi/Makefile.am: 13588 * gst/vaapi/gstvaapipluginbase.c: 13589 * gst/vaapi/gstvaapipluginbase.h: 13590 plugins: record downstream GstGLContext. 13591 Record GL context supplied by downstream elements. This can be useful, 13592 and further needed, to enforce run-time check that the GL context is 13593 compatible for use by libgstvaapi. e.g. check that we don't create a 13594 VA/GLX display for EGL/X11 contexts. 13595 https://bugzilla.gnome.org/show_bug.cgi?id=725643 13596 Original-path-by: Matthew Waters <ystreet00@gmail.com> 13597 135982014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13599 13600 * tests/Makefile.am: 13601 * tests/output.c: 13602 egl: update tests. 13603 Add initial support for EGL to tests. The new EGL backend can be selected 13604 through the --egl command line option. The OpenGL|ES version can further 13605 be selected with the --gles-version command line option, where the default 13606 of 0 means "desktop" OpenGL. 13607 136082015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13609 13610 * gst-libs/gst/vaapi/Makefile.am: 13611 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 13612 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 13613 * gst-libs/gst/vaapi/gstvaapiutils_egl.h: 13614 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c: 13615 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h: 13616 egl: add windowing support. 13617 This provides for some basic EGL window abstraction. 13618 136192015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13620 13621 * gst-libs/gst/vaapi/Makefile.am: 13622 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 13623 * gst-libs/gst/vaapi/gstvaapitexture_egl.c: 13624 * gst-libs/gst/vaapi/gstvaapitexture_egl.h: 13625 egl: add texture abstraction. 13626 Add GstVaapiTextureEGL abstraction that can create its own GL texture, 13627 or import a foreign allocated one, while still allowing updates from a 13628 VA surface. 13629 136302014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13631 13632 * gst-libs/gst/vaapi/Makefile.am: 13633 * gst-libs/gst/vaapi/gstvaapisurface_egl.c: 13634 * gst-libs/gst/vaapi/gstvaapisurface_egl.h: 13635 egl: allow for EGLImage imports into VA Surfaces. 13636 Add helpers to import EGLImage objects into VA surfaces. There are 13637 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(), 13638 which allows for implicit conversion from EGLImage to a VA surface 13639 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(), 13640 which exactly wraps the source EGLImage, typically in RGBA format 13641 with linear storage. 13642 Note: in case of (i), the EGLImage can be disposed right after the 13643 VA surface creation call, unlike in (ii) where the user shall ensure 13644 that the EGLImage is live until the associated VA surface is no longer 13645 needed. 13646 https://bugzilla.gnome.org/show_bug.cgi?id=743847 13647 136482015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13649 13650 * configure.ac: 13651 * gst-libs/gst/vaapi/Makefile.am: 13652 * gst-libs/gst/vaapi/egl_compat.h: 13653 * gst-libs/gst/vaapi/egl_vtable.h: 13654 * gst-libs/gst/vaapi/gstvaapidisplay.c: 13655 * gst-libs/gst/vaapi/gstvaapidisplay.h: 13656 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c: 13657 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h: 13658 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h: 13659 * gst-libs/gst/vaapi/gstvaapiutils_egl.c: 13660 * gst-libs/gst/vaapi/gstvaapiutils_egl.h: 13661 * gst-libs/gst/vaapi/ogl_compat.h: 13662 Add initial support for EGL. 13663 Add initial support for EGL to libgstvaapi core library. The target 13664 display server and the desired OpenGL API can be programmatically 13665 selected at run-time. 13666 A comprehensive set of EGL utilities are provided to support those 13667 dynamic selection needs, but also most importantly to ensure that 13668 the GL command stream is executed from within a single thread. 13669 https://bugzilla.gnome.org/show_bug.cgi?id=743846 13670 136712015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13672 13673 * gst-libs/gst/vaapi/gstvaapivalue.c: 13674 libs: initialize GValues in a thread-safe manner. 13675 136762015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13677 13678 * gst-libs/gst/vaapi/gstvaapivalue.c: 13679 libs: re-indent all GValue related source code. 13680 136812015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13682 13683 * gst/vaapi/gstvaapidecode.c: 13684 vaapidecode: partially revert 0777f35. 13685 Reset the VA decoder after updating the base plugin caps, and most 13686 importantly, after GstVideoDecoder negotiation. The reason behind 13687 this is that the negotiation could trigger a last decide_allocation() 13688 where we could actually derive a new GstVaapiDisplay to use from the 13689 downstream element. e.g. GLX backend. 13690 136912015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13692 13693 * gst/vaapi/gstvaapidecode.c: 13694 vaapidecode: Caps query should return the list of all supported caps. 13695 Query caps filtering should be always done on top of allowed caps instead 13696 of existing fixed caps on a particular pad. 13697 This fixes the mvc stream decoding when there is a base view(high profile) 13698 and non-base view(stereo-high profile). 13699 137002015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13701 13702 * gst/vaapi/gstvaapidecode.c: 13703 vaapidecode: intersect filter from query caps 13704 According to documentation[1] when receiving a GST_QUERY_CAPS 13705 the return value should be all formats that this elements supports, 13706 taking into account limitations of peer elements further downstream 13707 or upstream, sorted by order of preference, highest preference first. 13708 This patch add those limitations intersecting with the received 13709 filter in the query. Also takes into account the already negotiated 13710 caps. Also adds the processing of the query on the SRC pad. 13711 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html 13712 https://bugzilla.gnome.org/show_bug.cgi?id=744406 13713 137142015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13715 13716 * gst-libs/gst/vaapi/Makefile.am: 13717 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 13718 * gst-libs/gst/vaapi/gstvaapidecoder.c: 13719 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 13720 * gst-libs/gst/vaapi/gstvaapidisplay.c: 13721 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 13722 * gst/vaapi/gstvaapivideomemory.c: 13723 Fix compiler warnings 13724 This patch fixes some warnings that gcc 4.9 reports. 13725 https://bugzilla.gnome.org/show_bug.cgi?id=744411 13726 137272015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13728 13729 * gst/vaapi/gstvaapidecode.c: 13730 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query() 13731 Hence the function name is shown in the gst-inspect-1.0 information 13732 rather than the memory address. 13733 https://bugzilla.gnome.org/show_bug.cgi?id=744330 13734 137352015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13736 13737 * gst/vaapi/gstvaapidecode.c: 13738 vaapidecode: log flow error name 13739 https://bugzilla.gnome.org/show_bug.cgi?id=744387 13740 137412015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 13742 13743 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 13744 VC1: decoder: Ignore VC1 user BDU's 13745 Don't return error if the processed BDU is a user one, just ignore them. 13746 https://bugzilla.gnome.org/show_bug.cgi?id=741237 13747 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13748 137492015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com> 13750 13751 * gst/vaapi/gstvaapidecode.c: 13752 * gst/vaapi/gstvaapipluginbase.c: 13753 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR 13754 This is required in GStreamer, elements should never return 13755 GST_FLOW_ERROR without posting an ERROR message on the bus. 13756 https://bugzilla.gnome.org/show_bug.cgi?id=744620 13757 137582015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13759 13760 * gst/vaapi/Makefile.am: 13761 * gst/vaapi/gstvaapi.c: 13762 * gst/vaapi/gstvaapiencode_vp8.c: 13763 * gst/vaapi/gstvaapiencode_vp8.h: 13764 plugins: Add VP8 Encoder 13765 137662015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13767 13768 * gst-libs/gst/vaapi/Makefile.am: 13769 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c: 13770 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h: 13771 Add VP8 Encoder to core libgstvaapi. 13772 137732015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13774 13775 * configure.ac: 13776 configure: Add Check for VP8 Encoding API 13777 137782015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com> 13779 13780 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 13781 decoder: vc1: Rounding control handling for VC1 simple and Main profile 13782 Added rounding control handling for VC1 simple and Main profile 13783 based on VC1 standard spec: section 8.3.7 13784 https://bugzilla.gnome.org/show_bug.cgi?id=743958 13785 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> 13786 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13787 137882015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13789 13790 * gst/vaapi/Makefile.am: 13791 build: fix make dist when certain conditionals not met. 13792 Fix typo which was preventing the inclusion of jpeg encoder 13793 source files from make dist (when there is no jpeg encoder 13794 API support in libva). 13795 137962015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13797 13798 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 13799 encoder: jpeg: Fix the sampling factor calculation for ENCODED format. 13800 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED, 13801 use native YUV420 format (which is i420) as default. 13802 138032015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13804 13805 * gst-libs/gst/vaapi/gstvaapiencoder.c: 13806 encoder: Only support YUV420 native format as input for now 13807 Practically we should be able to support more formats, for eg: 13808 JPEG Encoder can support YUV422, RGBA and all. 13809 But this is causing more issues which need proper fix here and there. 13810 138112015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com> 13812 13813 * gst-libs/gst/vaapi/gstvaapidecoder.h: 13814 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 13815 * gst/vaapi/gstvaapidecode.c: 13816 vaapidecode: Check the condition after taking the lock 13817 Otherwise the condition could become true before the lock 13818 is taken and the g_cond_signal() could be called 13819 before the g_cond_wait(), so the g_cond_wait() is never 13820 awoken. 13821 https://bugzilla.gnome.org/show_bug.cgi?id=740645 13822 138232015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13824 13825 * gst/vaapi/Makefile.am: 13826 * gst/vaapi/gstvaapi.c: 13827 * gst/vaapi/gstvaapiencode_jpeg.c: 13828 * gst/vaapi/gstvaapiencode_jpeg.h: 13829 plugins: Add JPEG encoder element 13830 138312015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13832 13833 * gst-libs/gst/vaapi/gstvaapicontext.c: 13834 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation. 13835 138362015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13837 13838 * gst-libs/gst/vaapi/gstvaapicontext.c: 13839 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig 13840 Don't add the VAConfigAttribRateControl to the attribute list using 13841 for the vaCreateConfig if it is not supported by the driver. 13842 138432015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13844 13845 * gst-libs/gst/vaapi/gstvaapiencoder.c: 13846 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding 13847 138482015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13849 13850 * gst-libs/gst/vaapi/gstvaapiencoder.c: 13851 gstvaapiencoder: Fix crash when handling rate control mask 13852 Having a ratecontrol_mask equal to zero is not a bug, but the driver 13853 might not be supporting any kind of rate control mechanisms. 13854 Eg: JPEG Encoding 13855 138562015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13857 13858 * gst-libs/gst/vaapi/Makefile.am: 13859 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c: 13860 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h: 13861 encoder: Add JPEG Encoder 13862 138632015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13864 13865 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 13866 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 13867 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable 13868 138692015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13870 13871 * gst-libs/gst/vaapi/gstvaapidisplay.c: 13872 * gst-libs/gst/vaapi/gstvaapiencoder.c: 13873 * gst-libs/gst/vaapi/gstvaapiprofile.c: 13874 * gst-libs/gst/vaapi/gstvaapiprofile.h: 13875 Encode: Add support for Picture level Entrypoint 13876 This is useful for JPEG encoding which is utilizing picture level 13877 entrypoint instead of slice level entrypoint like h264,mpeg2 etc. 13878 138792015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13880 13881 * configure.ac: 13882 configure: Add Check for JPEG encoding API 13883 138842015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13885 13886 * AUTHORS: 13887 AUTHORS: Updates 13888 138892015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13890 13891 * configure.ac: 13892 Bump version for development. 13893 13894=== release 0.5.10 === 13895 138962015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13897 13898 * configure.ac: 13899 0.5.10 13900 139012015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13902 13903 * NEWS: 13904 NEWS: Updates 13905 139062015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 13907 13908 * gst/vaapi/gstvaapivideometa_texture.c: 13909 Fix compilation error if there is no GL/gl.h header file installed 13910 139112015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13912 13913 * gst/vaapi/gstvaapivideomemory.h: 13914 plugins: drop leftover declaration. 13915 GstVaapiVideoMemory quark is not needed any more, and the actual 13916 implementation was already removed bfore the merge. i.e. this is 13917 an oversight for a hunk that was not meant to be pushed. 13918 139192015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13920 13921 * gst/vaapi/gstvaapipluginbase.c: 13922 * gst/vaapi/gstvaapivideobufferpool.c: 13923 * gst/vaapi/gstvaapivideobufferpool.h: 13924 * gst/vaapi/gstvaapivideomemory.c: 13925 * gst/vaapi/gstvaapivideomemory.h: 13926 plugins: add support for dma_buf exports (v4l2src). 13927 Allow v4l2src element to connected to vaapipostproc or vaapisink when 13928 "io-mode" is set to "dmabuf-import". In practice, this is a more likely 13929 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set 13930 to "dmabuf" could work, but with more demanding driver or kernel reqs. 13931 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built 13932 with --without-libv4l2. 13933 https://bugzilla.gnome.org/show_bug.cgi?id=743635 13934 139352014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com> 13936 13937 * configure.ac: 13938 * gst/vaapi/Makefile.am: 13939 * gst/vaapi/gstvaapipluginbase.c: 13940 plugins: add support for dma_buf imports. 13941 Allow imports of v4l2 buffers into VA surfaces for further operation 13942 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements. 13943 https://bugzilla.gnome.org/show_bug.cgi?id=735362 13944 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups] 13945 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13946 139472014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13948 13949 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 13950 * gst-libs/gst/vaapi/gstvaapisurface_drm.h: 13951 surface: add support for GEM buffer imports. 13952 Add support for GEM buffer imports. This is useful for VA/EGL interop 13953 with legacy Mesa implementations, or when it is desired or required to 13954 support outbound textures for instance. 13955 https://bugzilla.gnome.org/show_bug.cgi?id=736718 13956 139572014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13958 13959 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 13960 * gst-libs/gst/vaapi/gstvaapisurface_drm.h: 13961 surface: add support for dma_buf imports. 13962 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function 13963 to allow for creating VA surfaces from a foreign DRM PRIME fd. The 13964 resulting VA surface owns the supplied buffer handle. 13965 https://bugzilla.gnome.org/show_bug.cgi?id=735362 13966 139672015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13968 13969 * gst-libs/gst/vaapi/gstvaapisurface.c: 13970 * gst-libs/gst/vaapi/gstvaapisurface.h: 13971 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 13972 surface: add initial support for foreign buffer imports. 13973 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to 13974 create a VA surface from an external buffer provided throug the 13975 new GstVaapiBufferProxy object. 13976 139772014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13978 13979 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 13980 * gst-libs/gst/vaapi/gstvaapibufferproxy.h: 13981 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 13982 * gst-libs/gst/vaapi/gstvaapisurface_drm.h: 13983 surface: add support for GEM buffer exports. 13984 Add support for GEM buffer exports. This will only work with VA drivers 13985 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed 13986 to support interop with EGL and the "Desktop" GL specification. Indeed, 13987 the EXT_image_dma_buf_import extension is not going to be supported in 13988 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets 13989 there. 13990 This is useful for implementing VA/EGL interop with legacy Mesa stacks, 13991 in Desktop OpenGL context. 13992 https://bugzilla.gnome.org/show_bug.cgi?id=736717 13993 139942014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 13995 13996 * gst-libs/gst/vaapi/Makefile.am: 13997 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 13998 * gst-libs/gst/vaapi/gstvaapibufferproxy.h: 13999 * gst-libs/gst/vaapi/gstvaapisurface_drm.c: 14000 * gst-libs/gst/vaapi/gstvaapisurface_drm.h: 14001 surface: add support for dma_buf exports. 14002 Use the new VA buffer export APIs to allow for a VA surface to be 14003 exposed as a plain PRIME fd. This is in view to simplifying interop 14004 with EGL or OpenCL for instance. 14005 https://bugzilla.gnome.org/show_bug.cgi?id=735364 14006 140072014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14008 14009 * gst-libs/gst/vaapi/Makefile.am: 14010 * gst-libs/gst/vaapi/gstvaapibufferproxy.c: 14011 * gst-libs/gst/vaapi/gstvaapibufferproxy.h: 14012 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h: 14013 Add abstraction for exported VA buffers. 14014 The VA buffer export APIs work for a particular lifetime starting from 14015 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such, 14016 it could be much more convenient to support implicit releases by simply 14017 having a refcount reaching zero. 14018 https://bugzilla.gnome.org/show_bug.cgi?id=736721 14019 140202015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14021 14022 * gst-libs/gst/vaapi/Makefile.am: 14023 Add missing header file to Makefile 14024 Add gstvaapitexture_glx.h to Makefile.am 14025 140262015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14027 14028 * gst-libs/gst/vaapi/gstvaapicontext.c: 14029 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 14030 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 14031 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 14032 * gst/vaapi/gstvaapipostproc.c: 14033 * gst/vaapi/gstvaapiuploader.c: 14034 * gst/vaapi/gstvaapivideobufferpool.c: 14035 * gst/vaapi/gstvaapivideomemory.c: 14036 * gst/vaapi/gstvaapivideomemory.h: 14037 * tests/test-surfaces.c: 14038 videopool: add optional flags for surface pool allocation. 14039 Reword surface pool allocation helpers so that to allow for a simple 14040 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a 14041 somewhat more elaborated/flexible form with optional allocation flags 14042 and precise GstVideoInfo specification. 14043 This is an API/ABI change, and SONAME version needs to be bumped. 14044 140452015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14046 14047 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 14048 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 14049 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 14050 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 14051 * gst-libs/gst/vaapi/gstvaapivideopool.c: 14052 * gst-libs/gst/vaapi/gstvaapivideopool.h: 14053 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: 14054 videopool: re-indent all GstVaapiVideoPool related source code. 14055 140562014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14057 14058 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 14059 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 14060 window: add toplevel display indirection for visualid and colormap. 14061 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine 14062 the best suitable window visual id and colormap. This is an indirection in 14063 view to supporting EGL and custom/generic replacements. 14064 140652014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14066 14067 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 14068 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 14069 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 14070 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 14071 window: add toplevel API to determine the colormap. 14072 Add GstVaapiWindowClass::get_colormap() hook to help determine the 14073 currently active colormap bound to the supplied window, or actually 14074 create it if it does not already exist yet. 14075 140762014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14077 14078 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 14079 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 14080 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 14081 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 14082 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 14083 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 14084 window: add toplevel API to determine a visual id. 14085 Add GstVaapiWindowClass::get_visual_id() function hook to help find 14086 the best suitable visual id for the supplied window. While doing so, 14087 also simplify the process by which an X11 window is created with a 14088 desired Visual, i.e. now use a visual id instead of a Visual object. 14089 140902014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14091 14092 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 14093 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 14094 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 14095 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 14096 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 14097 * gst-libs/gst/vaapi/gstvaapiwindow.c: 14098 * gst-libs/gst/vaapi/gstvaapiwindow.h: 14099 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 14100 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 14101 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 14102 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 14103 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 14104 window: add generic helper to create windows. 14105 Add a new generic helper function gst_vaapi_window_new() to create 14106 a window without having the caller to check for the display type 14107 himself. i.e. internally, there is now a GstVaapiDisplayClass hook 14108 to create windows, and the actual backend implementation fills it in. 14109 Add new generic helper functions gst_vaapi_texture_new_wrapped() 14110 This is a simplification in view to supporting EGL. 14111 141122014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14113 14114 * gst-libs/gst/vaapi/gstvaapidisplay.c: 14115 * gst-libs/gst/vaapi/gstvaapidisplay.h: 14116 * gst-libs/gst/vaapi/gstvaapitexture.c: 14117 * gst/vaapi/gstvaapivideometa_texture.c: 14118 display: add utility function to check for OpenGL rendering. 14119 Add gst_vaapi_display_has_opengl() helper function to help determining 14120 whether the display can support OpenGL context to be bound to it, i.e. 14121 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX. 14122 141232014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14124 14125 * gst-libs/gst/vaapi/gstvaapidisplay.c: 14126 * gst-libs/gst/vaapi/gstvaapidisplay.h: 14127 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 14128 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 14129 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 14130 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 14131 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 14132 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 14133 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 14134 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 14135 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 14136 * gst/vaapi/gstvaapipluginutil.c: 14137 * gst/vaapi/gstvaapivideobuffer.c: 14138 * gst/vaapi/gstvaapivideometa_texture.c: 14139 display: refine the meaning of display type. 14140 Make gst_vaapi_display_get_display_type() return the actual VA display 14141 type. Conversely, add a gst_vaapi_display_get_class_type() function to 14142 return the type of the GstVaapiDisplay instance. The former is used to 14143 identify the display server onto which the application is running, and 14144 the latter to identify the original object class. 14145 141462014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14147 14148 * gst-libs/gst/vaapi/gstvaapidisplay.c: 14149 * gst-libs/gst/vaapi/gstvaapidisplay.h: 14150 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 14151 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 14152 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 14153 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 14154 display: cosmetics (helper macros, new internal API names). 14155 Add more helper macros to the top-level GstVaapiDisplay interfaces. 14156 Rename a few others used internally for improved consistency. 14157 141582014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14159 14160 * gst-libs/gst/vaapi/gstvaapidisplay.c: 14161 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 14162 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 14163 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: 14164 * gst-libs/gst/vaapi/gstvaapitexture_glx.c: 14165 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 14166 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 14167 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 14168 display: record native display object. 14169 Record the underlying native display instance into the toplevel 14170 GstVaapiDisplay object. This is useful for fast lookups to the 14171 underlying native display, e.g. for creating an EGL display. 14172 141732014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14174 14175 * gst-libs/gst/vaapi/gstvaapidisplay.c: 14176 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 14177 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 14178 display: use a recursive mutex for the display cache. 14179 Use a recursive mutex for the display cache so that a 3rdparty display 14180 object could be initialized during the initialization of the parent 14181 display. 14182 141832014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14184 14185 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 14186 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 14187 * gst-libs/gst/vaapi/gstvaapitexture.c: 14188 * gst-libs/gst/vaapi/gstvaapitexture.h: 14189 * gst-libs/gst/vaapi/gstvaapitexture_glx.c: 14190 * gst-libs/gst/vaapi/gstvaapitexture_priv.h: 14191 texture: add generic helper to create textures. 14192 Add new generic helper functions gst_vaapi_texture_new_wrapped() 14193 and gst_vaapi_texture_new() to create a texture without having 14194 the caller to uselessly check for the display type himself. i.e. 14195 internally, there is now a GstVaapiDisplayClass hook to create 14196 textures, and the actual backend implementation fills it in. 14197 This is a simplification in view to supporting EGL. 14198 141992014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14200 14201 * gst-libs/gst/vaapi/Makefile.am: 14202 * gst-libs/gst/vaapi/gstvaapitexture.c: 14203 * gst-libs/gst/vaapi/gstvaapitexture.h: 14204 * gst-libs/gst/vaapi/gstvaapitexture_glx.c: 14205 * gst-libs/gst/vaapi/gstvaapitexture_glx.h: 14206 * gst-libs/gst/vaapi/gstvaapitexture_priv.h: 14207 * gst/vaapi/gstvaapivideoconverter_glx.c: 14208 * gst/vaapi/gstvaapivideometa_texture.c: 14209 * tests/test-textures.c: 14210 texture: move to core libgstvaapi base library. 14211 GstVaapiTexture is a generic abstraction that could be moved to the 14212 core libgstvaapi library. While doing this, no extra dependency needs 14213 to be added. This means that a GstVaapitextureClass is now available 14214 for any specific code that needs to be added, e.g. creation of the 14215 underlying GL texture objects, or backend dependent ways to upload 14216 a surface to the texture object. 14217 Generic OpenGL data types (GLuint, GLenum) are also replaced with a 14218 plain guint. 14219 https://bugzilla.gnome.org/show_bug.cgi?id=736715 14220 142212014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14222 14223 * configure.ac: 14224 * gst-libs/gst/vaapi/Makefile.am: 14225 * gst-libs/gst/vaapi/gstvaapicompat.h: 14226 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 14227 * gst-libs/gst/vaapi/gstvaapitexture.c: 14228 texture: drop support for VA/GLX interfaces. 14229 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and 14230 ease of use, but they had other caveats to deal with. It's now better 14231 to move on to legacy mode, whereby VA/GLX interop is two be provided 14232 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing. 14233 https://bugzilla.gnome.org/show_bug.cgi?id=736711 14234 142352014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14236 14237 * gst-libs/gst/vaapi/gstvaapitexture.c: 14238 * gst-libs/gst/vaapi/gstvaapitexture.h: 14239 * gst/vaapi/gstvaapivideoconverter_glx.c: 14240 * gst/vaapi/gstvaapivideometa_texture.c: 14241 * tests/test-textures.c: 14242 texture: add support for cropping rectangle during transfer. 14243 The gst_vaapi_texture_put_surface() function is missing a crop_rect 14244 argument that would be used during transfer for cropping the source 14245 surface to the desired dimensions. 14246 Note: from a user point-of-view, he should create the GstVaapiTexture 14247 object with the cropped size. That's the default behaviour in software 14248 decoding pipelines that we need to cope with. 14249 This is an API/ABI change, and SONAME version needs to be bumped. 14250 https://bugzilla.gnome.org/show_bug.cgi?id=736712 14251 142522014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14253 14254 * gst-libs/gst/vaapi/gstvaapitexture.c: 14255 * gst-libs/gst/vaapi/gstvaapitexture.h: 14256 texture: re-indent all GstVaapiTexture related source code. 14257 142582015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14259 14260 * gst-libs/gst/vaapi/gstvaapisurface.c: 14261 * gst-libs/gst/vaapi/gstvaapisurface.h: 14262 surface: add more fine-grained allocation helper. 14263 Add new gst_vaapi_surface_new_full() helper function that allocates 14264 VA surface from a GstVideoInfo template in argument. Additional flags 14265 may include ways to 14266 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ; 14267 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ; 14268 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS). 14269 142702014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14271 14272 * gst-libs/gst/vaapi/gstvaapisurface.c: 14273 * gst-libs/gst/vaapi/gstvaapisurface.h: 14274 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 14275 surface: re-indent all GstVaapiSurface related source code. 14276 142772015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14278 14279 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 14280 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 14281 surfaceproxy: add helper to create a wrapped surface object. 14282 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into 14283 a proxy. The main use case for that is to convey additional information 14284 at the proxy level that would not be suitable to the plain surface. 14285 142862015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14287 14288 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 14289 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 14290 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 14291 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code. 14292 142932015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14294 14295 * configure.ac: 14296 libs: bump library major version. 14297 142982014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14299 14300 * gst-libs/gst/vaapi/gstvaapitypes.h: 14301 libs: re-introduce a GST_VAAPI_ID_INVALID value. 14302 Re-introduce a GST_VAAPI_ID_INVALID value that represents 14303 a non-zero and invalid id. This is useful to have a value 14304 that is still invalid for cases where zero could actually 14305 be a valid value. 14306 143072014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14308 14309 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 14310 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 14311 libs: expose GstVaapiMiniObject APIs to all backends. 14312 Make it possible to have all libgstvaapi backends (libs) access to a 14313 common GstVaapiMiniObject API and implementation. This is a minor step 14314 towards full exposure when needed, but restrict it to libgstvaapi at 14315 this time. 14316 143172014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14318 14319 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 14320 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 14321 * gst-libs/gst/vaapi/gstvaapiobject.c: 14322 * gst-libs/gst/vaapi/gstvaapiobject.h: 14323 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 14324 libs: re-indent all GstVaapiObject related source code. 14325 Re-indent and provide additional minor cosmetical changes to the 14326 GstVaapiMiniObject and GstVaapiObject source files. 14327 143282015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 14329 14330 * gst/vaapi/gstvaapipluginutil.c: 14331 pluginutil: Fix clearing of subtitle overlay 14332 dvbsuboverlay signals no subtitles present by not setting 14333 GstVideoOverlayCompositionMeta on a buffer. 14334 Detect this, and remove subtitles whenever we have no overlay composition to 14335 hand. 14336 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 14337 143382015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de> 14339 14340 * gst/vaapi/gstvaapipostproc.c: 14341 vaapipostproc: clear state on stop 14342 Otherwise restarting may fail because the state of vaapipluginbase and 14343 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip 14344 initailization and not call gst_vaapi_plugin_base_set_caps() 14345 143462015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de> 14347 14348 * gst/vaapi/gstvaapidecode.c: 14349 vaapidecode: don't print an error message for GST_FLOW_FLUSHING 14350 143512015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14352 14353 * gst-libs/gst/vaapi/gstvaapiencoder.c: 14354 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling 14355 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder, 14356 since the vaaapi context creation (gstvaapicontext.c) can still use the 14357 default chroma type which is YUV420. 14358 https://bugzilla.gnome.org/show_bug.cgi?id=743567 14359 https://bugzilla.gnome.org/show_bug.cgi?id=743035 14360 143612015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14362 14363 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: 14364 * patches/videoparsers/series.frag: 14365 h264parse: drop patches merged upstream. 14366 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch 14367 143682015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14369 14370 * ext/codecparsers: 14371 codecparsers: update to gst-vaapi-branch commit d3b5c1b 14372 8194cac: h264parse: parse SPS subset 14373 64b7f52: h264parse: expose stereo-high profile 14374 774360a: h264parse: add initial support for MVC NAL units 14375 258478f: h264parser: fix stack smashing 14376 143772015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14378 14379 * gst/vaapi/gstvaapivideometa_texture.c: 14380 Fix compilation error if there is no GL/gl.h header file installed 14381 143822015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14383 14384 * gst/vaapi/gstvaapidecode.c: 14385 vaapidecode: commit updated srcpad caps to base plugin. 14386 Make sure that the GstVaapiPluginBase instance receives the new src 14387 pad caps whenever they get updated from within the GstVaapiDecoder 14388 decode routines. 14389 This also ensures that downstream elements receive correctly sized 14390 SW decoded buffers if needed. 14391 https://bugs.tizen.org/jira/browse/TC-114 14392 143932015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14394 14395 * gst/vaapi/gstvaapidecode.c: 14396 vaapidecode: always reset decoder on ::set_format(). 14397 Split GstVideoDecoder::set_format() handler to first update the sink 14398 pad caps and reset the active VA decoder instance based on those, and 14399 then update the src pad caps whenever possible, e.g. when the caps 14400 specify a valid video resolution. 14401 144022015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14403 14404 * gst/vaapi/gstvaapivideomemory.c: 14405 vaapivideomemory: don't crash when trying to allocate 0x0 images. 14406 In some occasions, a buffer pool is created for pre-initialization 14407 purposes regardless of whether a valid image size is available or 14408 not. However, during actual decode stage, the vaapidecode element 14409 is expected to update the srcpad caps with the new dimensions, thus 14410 also triggering a reset of the underlying bufferpool. 14411 144122015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14413 14414 * ext/codecparsers: 14415 codecparsers: update to gst-vaapi-branch commit 191cb2f 14416 347605a: h264parse: expose compatible profiles to downstream 14417 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek 14418 24a3126: Revert "h264parse: expose compatible profiles to downstream" 14419 8661740: h264parse: expose compatible profiles to downstream 14420 8b7ef3f: codecparsers: fix some compiler warnings 14421 144222014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14423 14424 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 14425 encoder: h264: Fix the period between I/P frames 14426 If the key-frame period is set as one, then ip_period shuld be zero 14427 https://bugzilla.gnome.org/show_bug.cgi?id=734992 14428 144292014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14430 14431 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 14432 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264 14433 https://bugzilla.gnome.org/show_bug.cgi?id=734993 14434 144352014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14436 14437 * gst/vaapi/gstvaapisink.c: 14438 vaapisink: Protect the X11 API invokations with proper locking 14439 https://bugzilla.gnome.org/show_bug.cgi?id=739808 14440 144412014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14442 14443 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 14444 encoder: h264: fix pixel-aspect-ratio in encoded stream. 14445 Really report sample aspect ratio (SAR) as present, and make it match 14446 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e. 14447 really make sure VUI parameter aspect_ratio_info_present_flag is set 14448 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR. 14449 This is a leftover from git commit a12662f. 14450 https://bugzilla.gnome.org/show_bug.cgi?id=740360 14451 144522014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14453 14454 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 14455 decoder: mpeg4: fix uninitialized variables. 14456 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to 14457 GST_MPEG4_USER_DATA so that a parse error would result in skipping 14458 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to 14459 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS. 14460 144612014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14462 14463 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 14464 encoder: h264: fix profile limits. 14465 Fix ensure_profile_limits() to lower profile to the desired limits, 14466 only if the latter are actually known and the profile needed to be 14467 changed to fit. 14468 144692014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14470 14471 * gst/vaapi/gstvaapipostproc.c: 14472 vaapipostproc: fix out caps for GLMemory. 14473 If the best downstream capsfeature turns out to be GLMemory, then make 14474 sure to propagate RGBA video format in caps to that element. This fixes 14475 the following pipeline: ... ! vaapipostproc ! glimagesink. 14476 144772014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14478 14479 * gst/vaapi/gstvaapipostproc.c: 14480 vaapipostproc: fix check for compatible src pad capsfilters. 14481 When an explicit output video format is selected, from an src pad 14482 capsfilter, make sure that the downstream element actually supports 14483 that format. In particular, fix crash with the following pipelines: 14484 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where 14485 XXX is a format not supported by xvimagesink. 14486 While doing so, also reduce the set of src pad filter caps to the 14487 actual set of allowed src pad caps. 14488 144892014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14490 14491 * gst/vaapi/gstvaapipostproc.c: 14492 * gst/vaapi/gstvaapipostproc.h: 14493 * gst/vaapi/gstvaapiuploader.c: 14494 * gst/vaapi/gstvaapiuploader.h: 14495 plugins: re-indent all video processing related source code. 14496 144972014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14498 14499 * gst/vaapi/gstvaapivideomemory.c: 14500 plugins: further fixes to the new "current" storage tracker. 14501 The ensure_surface() and ensure_image() functions shall only relate 14502 to the underlying backing store. The actual current flags are to be 14503 updated only through ensure_{surface,image}_is_current() or very other 14504 particular cases in GstMemory hooks. 14505 145062014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14507 14508 * gst/vaapi/gstvaapivideomemory.c: 14509 plugins: fix "current" video memory flags. 14510 If the surface proxy is updated into the GstVaapiVideoMemory, then 14511 it is assumed it is the most current representation of the current 14512 video frame. Likewise, make a few more arrangements to have the 14513 "current " flags set more consistently. 14514 145152014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14516 14517 * gst/vaapi/gstvaapivideomemory.c: 14518 * gst/vaapi/gstvaapivideomemory.h: 14519 * gst/vaapi/gstvaapivideometa.c: 14520 plugins: ensure VA surface is current prior to using it. 14521 When interacting with SW elements, the buffers and underlying video 14522 memory could be mapped as read/write. However, we need to use those 14523 buffers again as plain VA surfaces, we have to make sure the VA image 14524 is thus committed back to VA surface memory. 14525 This fixes pipelines involving avdec_* and vaapi{postproc,sink}. 14526 145272013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 14528 14529 * gst/vaapi/gstvaapivideomemory.c: 14530 plugins: enable memory maps for read & write. 14531 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded 14532 buffers can be further processed in-place, e.g. with a textoverlay. 14533 https://bugzilla.gnome.org/show_bug.cgi?id=704078 14534 [ported to current git master branch, amended commit message] 14535 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14536 145372014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14538 14539 * gst/vaapi/gstvaapidecode.c: 14540 * gst/vaapi/gstvaapipluginutil.c: 14541 * gst/vaapi/gstvaapipluginutil.h: 14542 * gst/vaapi/gstvaapipostproc.c: 14543 plugins: preserve framerate when updating src caps video format. 14544 In the current implementation, gst_video_info_set_format() would reset 14545 the whole GstVideoInfo structure first, prior to setting video format 14546 and size. So, coleteral information like framerate or pixel-aspect- 14547 ratio are lost. 14548 Provide and use a unique gst_video_info_change_format() for overcome 14549 this issue, i.e. only have it change the format and video size, and 14550 copy over the rest of the fields. 14551 https://bugzilla.gnome.org/show_bug.cgi?id=734665 14552 145532014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14554 14555 * gst/vaapi/gstvaapi.c: 14556 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1 14557 This is for helping decodebin to autoplug the vaapidecode element. 14558 Decodebin is selecting decoder elements only based on rank and caps. 14559 Without overriding the autoplug-* signals there is no way to autoplug 14560 HW decoders inside decodebin. An easier soulution is to raise the 14561 rank of vaapidecode, so that it gets selected first. 14562 https://bugzilla.gnome.org/show_bug.cgi?id=739332 14563 145642014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14565 14566 * gst-libs/gst/vaapi/gstvaapiprofile.c: 14567 * gst/vaapi/gstvaapidecode.c: 14568 vaapidecode: only expose supported profiles when needed. 14569 JPEG and VP8 codecs do not really support the concept of "profile". So, 14570 don't try to expose any set that wouldn't be supported by jpegparse, or 14571 ivfparse for instance. 14572 https://bugzilla.gnome.org/show_bug.cgi?id=739713 14573 https://bugzilla.gnome.org/show_bug.cgi?id=739714 14574 145752014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14576 14577 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 14578 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 14579 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 14580 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 14581 decoder: h264: add initial support for repeat-first-field (RFF) flag. 14582 Use the SEI pic_timing() message to track and propagate down the repeat 14583 first field (RFF) flag. This is only initial support as there is one 14584 other condition that could induce the RFF flag, which is not handled 14585 yet. 14586 145872014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14588 14589 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 14590 decoder: h264: fix picture ordering count type 0 with previous MMCO5. 14591 Fix the decoding process for picture order count type 0 when the previous 14592 picture had a memory_management_control_operation = 5. In particular, fix 14593 the actual variable type for prev_pic_structure to hold the full bits of 14594 the picture structure. 14595 In practice, this used to work though, due to the underlying type used to 14596 express a gboolean. 14597 145982014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14599 14600 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 14601 decoder: h264: fix detection of top-field-first (TFF) flag. 14602 Use the SEI pic_timing() message to track the pic_struct variable when 14603 present, or infer it from the regular slice header flags field_pic_flag 14604 and bottom_field_flag. This fixes temporal sequence ordering when the 14605 output pictures are to be displayed. 14606 https://bugzilla.gnome.org/show_bug.cgi?id=739291 14607 146082014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14609 14610 * ext/codecparsers: 14611 codecparsers: update to gst-vaapi-branch commit 3d05d9f. 14612 1241840 h264: fix derivation of MaxPicNum variable 14613 3bd718e h264: fix GstH264ParserResult documentation typo 14614 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS 14615 b08e4be h264parse: don't unnecesarily set src_caps 14616 146172014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14618 14619 * gst/vaapi/gstvaapipostproc.c: 14620 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass 14621 Added the same Klass specifications used in other upstream 14622 video postprocessing elements like videoconvert, videoscale, 14623 videobalance and deinterlace. 14624 An example use case is for this is to help the playsink 14625 to autoplug the hardware accelerated deinterlacer. 14626 146272014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14628 14629 * gst/vaapi/gstvaapipostproc.c: 14630 vaapipostproc: Tweak the output video format setting to enable the autoplugging 14631 This is a workaround until auto-plugging is fixed when 14632 format=ENCODED + memory:VASurface caps feature are provided. 14633 Use the downstream negotiated video format as the output video format 14634 if the user didn't ask for the colorspace conversion explicitly. 14635 Usecase: This will help to connect elements like videoscale, videorate etc 14636 to vaapipostproc. 14637 https://bugzilla.gnome.org/show_bug.cgi?id=739443 14638 146392014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14640 14641 * gst/vaapi/gstvaapipostproc.c: 14642 * gst/vaapi/gstvaapipostproc.h: 14643 vaapipostproc: allow user defined scaling mode. 14644 Add new "scale-method" property to expose the scaling mode to use during 14645 video processing. Note that this is only a hint, and the actual behaviour 14646 may differ from implementation (VA driver) to implementation. 14647 146482014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14649 14650 * gst-libs/gst/vaapi/gstvaapifilter.c: 14651 * gst-libs/gst/vaapi/gstvaapifilter.h: 14652 * gst-libs/gst/vaapi/gstvaapiutils.c: 14653 * gst-libs/gst/vaapi/gstvaapiutils.h: 14654 filter: add initial support for high quality scaling. 14655 Add support for video scaling options in VPP pipelines. Only the 14656 DEFAULT mode is bound to exist. Others might be folded into that 14657 mode. 14658 146592014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14660 14661 * gst-libs/gst/vaapi/gstvaapifilter.c: 14662 * gst-libs/gst/vaapi/gstvaapifilter.h: 14663 filter: re-indent all GstVaapiFilter related source code. 14664 146652014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14666 14667 * ext/codecparsers: 14668 codecparsers: update to gst-vaapi-branch commit f9d3bde. 14669 2218b02 h264parse: expose parsed profile and level to downstream 14670 3dbfab4 h264parse: return flushing if we get chained while being set to READY 14671 d40fa8b h264: fix frame packing SEI parsing 14672 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI 14673 b3e022e h264: initialize some fields of pic_timing structure 14674 a70661d vc1: fix expected level in sequence-layer parsing unit test 14675 6cee88d vc1: fix level values for simple/main profile 14676 356c189 vc1: add unit test for sequence-layer parsing 14677 ab9f641 vc1: take care of endianness when parsing sequence-layer 14678 8dc8e35 mpeg4: fix vlc table used for sprite trajectory 14679 146802014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14681 14682 * gst/vaapi/gstvaapidecode.c: 14683 vaapidecode: Expose the supported profiles as caps to upstream 14684 This will allows the playbin to fallback to Software Decoder 14685 if the Hardware Decoder does not support a particular profile. 14686 https://bugzilla.gnome.org/show_bug.cgi?id=730997 14687 146882014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14689 14690 * gst/vaapi/gstvaapiencode.c: 14691 * gst/vaapi/gstvaapiencode.h: 14692 * gst/vaapi/gstvaapiencode_h264.c: 14693 encode: Attach the codec-data to out caps only based on negotiated caps 14694 Attach the codec_data to out_caps only if downstream needed. 14695 For eg: h264 encoder doesn't need to stuff codec_data to the 14696 src caps if the negotiated caps has a stream format of byte-stream. 14697 https://bugzilla.gnome.org/show_bug.cgi?id=734902 14698 146992014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14700 14701 * configure.ac: 14702 configure: echoing installation prefix path 14703 147042014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14705 14706 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 14707 display: add support for DRM Render-Nodes. 14708 Add support for DRM Render-Nodes. This is a new feature that appeared 14709 in kernel 3.12 for experimentation purposes, but was later declared 14710 stable enough in kernel 3.15 for getting enabled by default. 14711 This allows headless usages without authentication at all, i.e. usages 14712 through plain ssh connections is possible. 14713 147142014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14715 14716 * gst/vaapi/gstvaapisink.c: 14717 vaapisink: clean-ups (indentation, drop unused variables). 14718 147192014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14720 14721 * configure.ac: 14722 * gst/vaapi/gstvaapisink.c: 14723 vaapisink: fix GstNavigation "key-press" / "key-release" events. 14724 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode 14725 to a KeySym. In particular, there is no such Window argument. Also 14726 make sure to check for, and use, the correct <X11/XKBlib.h> header 14727 where that new function is defined. Otherwise, default to the older 14728 XKeycodeToKeysym() function. 14729 147302014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14731 14732 * gst/vaapi/gstvaapisink.c: 14733 vaapisink: fix GstNavigation "mouse-move" event. 14734 Really use the motion event coordinates to propagate the "mouse-move" 14735 event to upper layer, instead of those from a button event. Those are 14736 technically the same though. 14737 147382014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14739 14740 * gst/vaapi/gstvaapisink.c: 14741 vaapisink: implement the GstNavigation interface 14742 This is useful for things like DVD menus, where key/mouse events 14743 would need to be forwarded from the upstream sink element. 14744 https://bugzilla.gnome.org/show_bug.cgi?id=711479 14745 147462014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 14747 14748 * gst/vaapi/gstvaapipluginbase.c: 14749 vaapipostproc: fix deinterlacing from non VA memory buffers. 14750 When we copy a buffer because we're moving it into VA-API memory, we 14751 need to copy flags. Otherwise, interlaced YUV buffers from a capture 14752 source (e.g. V4L2) don't get flagged as interlaced. 14753 https://bugzilla.gnome.org/show_bug.cgi?id=726270 14754 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 14755 [reversed order of gst_buffer_copy_into() flags to match <1.0 code] 14756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14757 147582014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14759 14760 * gst/vaapi/gstvaapipostproc.c: 14761 vaapipostproc: add support for GLTextureUploadMeta output. 14762 This allows for vaapipostproc to be chained to the glimagesink element 14763 for instance. 14764 https://bugzilla.gnome.org/show_bug.cgi?id=735231 14765 147662014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14767 14768 * gst/vaapi/gstvaapipluginutil.c: 14769 * gst/vaapi/gstvaapipluginutil.h: 14770 * gst/vaapi/gstvaapipostproc.c: 14771 vaapipostproc: add support for "download" capability. 14772 Allow implicit conversions to raw video formats, while still keeping 14773 VA surfaces underneath. This allows for chaining the vaapipostproc 14774 element to a software-only element that takes care of maps/unmaps. 14775 e.g. xvimagesink. 14776 https://bugzilla.gnome.org/show_bug.cgi?id=720174 14777 147782014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14779 14780 * gst/vaapi/gstvaapipostproc.c: 14781 * gst/vaapi/gstvaapipostproc.h: 14782 vaapipostproc: use pooled vaapi video meta. 14783 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on 14784 video buffer allocation. Also optimize copy of additional metadata info 14785 into the resulting video buffer: only copy the video cropping info and 14786 the source surface proxy. 14787 https://bugzilla.gnome.org/show_bug.cgi?id=720311 14788 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14789 [fixed proxy leak, fixed double free on error, optimized meta copy] 14790 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14791 147922014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14793 14794 * gst/vaapi/gstvaapipostproc.c: 14795 vaapipostproc: fix passthrough mode. 14796 If no explicit output surface format is supplied try to keep the one 14797 supplied through the sink pad caps. This avoids a useless copy, even 14798 if things are kept in GPU memory. 14799 This is a performance regression from git commit dfa70b9. 14800 148012014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14802 14803 * gst/vaapi/gstvaapipostproc.c: 14804 * gst/vaapi/gstvaapipostproc.h: 14805 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory. 14806 https://bugzilla.gnome.org/show_bug.cgi?id=720311 14807 [used new infrastructure through base decide_allocation() impl] 14808 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14809 148102014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14811 14812 * gst/vaapi/gstvaapipostproc.c: 14813 vaapipostproc: enable advanced deinterlacing with same format. 14814 If only advanced deinterlacing is requested, i.e. deinterlacing is 14815 the only active algorithm to apply with source and output surface 14816 formats being the same, then make sure to enable VPP processing. 14817 Otherwise, allow fallback to bob-deinterlacing with simple rendering 14818 flags alteration. 14819 148202014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 14821 14822 * gst/vaapi/gstvaapivideomemory.c: 14823 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed. 14824 https://bugzilla.gnome.org/show_bug.cgi?id=735156 14825 148262014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14827 14828 * gst/vaapi/gstvaapipluginbase.c: 14829 * gst/vaapi/gstvaapipluginutil.c: 14830 plugins: fix memory leaks. 14831 148322014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14833 14834 * gst/vaapi/gstvaapidecode.c: 14835 * gst/vaapi/gstvaapipluginbase.c: 14836 * gst/vaapi/gstvaapipluginbase.h: 14837 plugins: factor out decide_allocation() hook. 14838 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps 14839 feature argument can be used to force a bufferpool with a specific kind 14840 of memory. 14841 148422014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14843 14844 * gst/vaapi/gstvaapivideobufferpool.c: 14845 * gst/vaapi/gstvaapivideobufferpool.h: 14846 * gst/vaapi/gstvaapivideomemory.c: 14847 plugins: allow bufferpool to not allocate vaapi video meta. 14848 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that 14849 can be used to disable early allocations of vaapi video metas on buffers, 14850 thus delagating that to the bufferpool user. 14851 148522014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14853 14854 * gst/vaapi/gstvaapivideobuffer.c: 14855 * gst/vaapi/gstvaapivideobuffer.h: 14856 * gst/vaapi/gstvaapivideobufferpool.c: 14857 * gst/vaapi/gstvaapivideobufferpool.h: 14858 * gst/vaapi/gstvaapivideocontext.c: 14859 * gst/vaapi/gstvaapivideocontext.h: 14860 * gst/vaapi/gstvaapivideoconverter_glx.c: 14861 * gst/vaapi/gstvaapivideoconverter_glx.h: 14862 * gst/vaapi/gstvaapivideoconverter_x11.c: 14863 * gst/vaapi/gstvaapivideoconverter_x11.h: 14864 * gst/vaapi/gstvaapivideomemory.c: 14865 * gst/vaapi/gstvaapivideomemory.h: 14866 * gst/vaapi/gstvaapivideometa.c: 14867 * gst/vaapi/gstvaapivideometa.h: 14868 * gst/vaapi/gstvaapivideometa_texture.c: 14869 * gst/vaapi/gstvaapivideometa_texture.h: 14870 plugins: re-indent all GstVaapiVideo* related source code. 14871 148722014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14873 14874 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 14875 surfaceproxy: fix copy to propagate view_id. 14876 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus 14877 fixing random frames skipped when vaapipostproc element is used in 14878 passthrough mode. In that mode, GstMemory is copied, thus including 14879 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy. 14880 148812014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14882 14883 * gst/vaapi/gstvaapipostproc.c: 14884 vaapipostproc: fix detection of output surface format changes. 14885 Default to I420 format for output surfaces so that to match the usual 14886 GStreamer pipelines. Though, internally, we could still opt for NV12 14887 surface formats, i.e. default format=ENCODED is a hint for that, thus 14888 delegating the decision to the VA driver. 14889 148902014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14891 14892 * gst/vaapi/gstvaapipostproc.c: 14893 vaapipostproc: fix construction of allowed sink pad caps. 14894 Fix construction of the set of caps allowed on the sink pad to filter 14895 out unsupported raw video caps with GStreamer >= 1.2. 14896 148972014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14898 14899 * gst/vaapi/gstvaapipostproc.c: 14900 * gst/vaapi/gstvaapipostproc.h: 14901 vaapipostproc: improve heuristics for detecting native VA surfaces. 14902 Use the new gst_caps_has_vaapi_surface() helper function to detect 14903 whether the sink pad caps contain native VA surfaces, or not, i.e. 14904 no raw video caps. 14905 Also rename is_raw_yuv to get_va_surfaces to make the variable more 14906 explicit as we just want a way to differentiate raw video caps from 14907 VA surfaces actually. 14908 149092014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14910 14911 * gst/vaapi/gstvaapipostproc.c: 14912 vaapipostproc: disable discontinuity detection code. 14913 The "discontinuity" tracking code, whereby lost frames are tentatively 14914 detected, is inoperant if the sink pad buffer timestamps are not right 14915 to begin with. 14916 This is a temporary workaround until the following bug is fixed: 14917 https://bugzilla.gnome.org/show_bug.cgi?id=734386 14918 149192014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14920 14921 * gst/vaapi/gstvaapipostproc.c: 14922 vaapipostproc: fix heuristic for detecting discontinuity. 14923 In order to make the discontinuity detection code useful, we need to 14924 detect the lost frames in the history as early as the previous frame. 14925 This is because some VA implementations only support one reference 14926 frame for advanced deinterlacing. 14927 In practice, turn the condition for detecting new frame that is beyond 14928 the previous frame from field_duration*2 to field_duration*3, i.e. 14929 nothing received for the past frame and a half because of possible 14930 rounding errors when calculating the field-duration either in this 14931 element (vaapipostproc), or from the upstream element (parser element). 14932 This is a regression introduced with commit faefd62. 14933 https://bugzilla.gnome.org/show_bug.cgi?id=734135 14934 149352014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14936 14937 * gst/vaapi/gstvaapipluginbase.c: 14938 * gst/vaapi/gstvaapipluginbase.h: 14939 plugins: fix detection of raw video caps. 14940 Use the new gst_caps_has_vaapi_surface() helper function to better 14941 detect raw video caps, and in particular those from RGB colorspace. 14942 https://bugzilla.gnome.org/show_bug.cgi?id=734665 14943 149442014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14945 14946 * gst/vaapi/gstvaapipluginutil.c: 14947 * gst/vaapi/gstvaapipluginutil.h: 14948 plugins: add helper for detecting VA surfaces in caps. 14949 Introduce new gst_caps_has_vaapi_surface() helper function to detect 14950 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this 14951 implies a check for memory:VASurface caps features, and format=ENCODED 14952 for earlier versions of GStreamer. 14953 149542014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com> 14955 14956 * gst/vaapi/gstvaapidecode.c: 14957 vaapidecode: start the decoder task again after finishing 14958 This allows the element to accept data again after draining without 14959 a hard reset or caps change happening in between. 14960 https://bugzilla.gnome.org/show_bug.cgi?id=734616 14961 149622014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com> 14963 14964 * gst/vaapi/gstvaapidecode.c: 14965 vaapidecode: unlock condition variables before shutting down the element 14966 Otherwise threads might wait for them, causing the shutdown of the element 14967 to deadlock on the streaming thread. 14968 https://bugzilla.gnome.org/show_bug.cgi?id=734616 14969 149702014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com> 14971 14972 * gst/vaapi/gstvaapidecode.c: 14973 vaapidecode: reset decoder_finish variable after stopping the decoder thread 14974 Otherwise the element is not usable again after draining/EOS. 14975 https://bugzilla.gnome.org/show_bug.cgi?id=734616 14976 149772014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com> 14978 14979 * gst/vaapi/gstvaapidecode.c: 14980 vaapidecode: don't try flushing the decoder instance if we didn't create one yet 14981 This otherwise results in unnecessary error messages. 14982 https://bugzilla.gnome.org/show_bug.cgi?id=734616 14983 149842014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14985 14986 * gst-libs/gst/vaapi/Makefile.am: 14987 * gst/vaapi/Makefile.am: 14988 build: fix with --no-undefined linker flags. 14989 https://bugzilla.gnome.org/show_bug.cgi?id=729352 14990 149912014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com> 14992 14993 * gst/vaapi/gstvaapisink.c: 14994 * gst/vaapi/gstvaapisink.h: 14995 vaapisink: add support for GstColorBalance interface. 14996 https://bugzilla.gnome.org/show_bug.cgi?id=722390 14997 [fixed channel names, simplified range factor, fixed memory leak] 14998 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 14999 150002014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com> 15001 15002 * gst/vaapi/gstvaapisink.c: 15003 * gst/vaapi/gstvaapisink.h: 15004 vaapisink: add support for colorbalance adjustment. 15005 https://bugzilla.gnome.org/show_bug.cgi?id=722390 15006 [fixed and simplified tracking of colorbalance value changes] 15007 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15008 150092014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15010 15011 * gst/vaapi/gstvaapisink.c: 15012 vaapisink: improve installation of properties. 15013 Simplify the creation and installation process of properties, by first 15014 accumulating them into a g_properties[] array, and next calling into 15015 g_object_class_install_properties(). 15016 Also add missing docs and flags to some properties. 15017 150182014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15019 15020 * gst/vaapi/gstvaapisink.c: 15021 * gst/vaapi/gstvaapisink.h: 15022 vaapisink: code clean-ups. 15023 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST() 15024 helper macro and use it wherever we know the object is a GstBaseSink or 15025 any base class. Drop explicit initializers for values that have defaults 15026 set to zero. 15027 150282014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15029 15030 * gst/vaapi/gstvaapisink.c: 15031 * gst/vaapi/gstvaapisink.h: 15032 vaapisink: re-indent all GstVaapiSink related source code. 15033 150342014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15035 15036 * gst/vaapi/gstvaapisink.c: 15037 * gst/vaapi/gstvaapisink.h: 15038 vaapisink: introduce separate backends. 15039 Introduce new backends vtable so that to have clean separation between 15040 display dependent code and common base code. That's a "soft" separation, 15041 we don't really need dedicated objects. 15042 https://bugzilla.gnome.org/show_bug.cgi?id=722248 15043 150442014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15045 15046 * gst/vaapi/gstvaapisink.c: 15047 * gst/vaapi/gstvaapisink.h: 15048 vaapisink: drop unused "synchronous" mode. 15049 Support for X11 "synchronous" mode was never implemented, and was only 15050 to be useful for debugging. Drop that altogether, that's not going to 15051 be useful in practice. 15052 https://bugzilla.gnome.org/show_bug.cgi?id=733985 15053 150542014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15055 15056 * gst/vaapi/gstvaapisink.c: 15057 * gst/vaapi/gstvaapisink.h: 15058 vaapisink: drop unused variables. 15059 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size 15060 variables. They got merged into the GstVaapiPluginBase object. 15061 150622014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15063 15064 * gst/vaapi/gstvaapisink.c: 15065 * gst/vaapi/gstvaapisink.h: 15066 vaapisink: drop GLX rendering and fancy effects. 15067 Rendering with GLX in vaapisink is kind of useless nowadays, including 15068 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting 15069 deprecated in favor of EGL, or more direct buffer sharing with actual 15070 GL textures. 15071 Should testing of interop with GLX be needed, one could still be using 15072 the modern cluttersink or glimagesink elements. 15073 https://bugzilla.gnome.org/show_bug.cgi?id=733984 15074 150752013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de> 15076 15077 * gst/vaapi/gstvaapisink.c: 15078 * gst/vaapi/gstvaapisink.h: 15079 vaapisink: listen to window size changes on X11. 15080 Allow dynamic changes to the window, e.g. performed by the user, and 15081 make sure to refresh its contents, while preserving aspect ratio. 15082 In practice, Expose and ConfigureNotify events are tracked in X11 15083 display mode by default. This occurs in a separte event thread, and 15084 this is similar to what xvimagesink does. Any of those events will 15085 trigger a reconfiguration of the window "soft" size, subsequently 15086 the render-rect when necessary, and finally _expose() the result. 15087 The default of handle_events=true can be changed programatically via 15088 gst_x_overlay_handle_events(). 15089 Thanks to Fabrice Bellet for rebasing the patch. 15090 https://bugzilla.gnome.org/show_bug.cgi?id=711478 15091 [dropped XInitThreads(), cleaned up the code a little] 15092 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15093 150942014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15095 15096 * gst/vaapi/gstvaapidecode.c: 15097 vaapidecode: decode and output all pending frames on normal EOS. 15098 The gst_vaapidecode_decode_loop() function is called within a separate 15099 task to fetch and output all frames that were decoded so far. So, if 15100 the decoder_loop_status is forcibly set to EOS when _finish() is called, 15101 then we are bound to exist the task without submitting the pending 15102 frames. 15103 If the downstream element error'ed out, then the gst_pad_push() would 15104 propagate up an error and so we will get it right for cutting off 15105 _finish() early in that case. 15106 This is a regression from 6003596. 15107 https://bugzilla.gnome.org/show_bug.cgi?id=733897 15108 151092014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15110 15111 * configure.ac: 15112 Bump version for development. 15113 151142014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15115 15116 * AUTHORS: 15117 AUTHORS: updates. 15118 151192014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15120 15121 * NEWS: 15122 NEWS: updates. 15123 151242014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com> 15125 15126 * gst/vaapi/gstvaapidecode.c: 15127 vaapidecode: properly return from decode loop on downstream errors. 15128 Fixes a hang/race on shutdown where _decode_loop() had already completed 15129 its execution and _finish() was waiting on a GCond for decode_loop() 15130 to complete. Also fixes the possible race where _finish() is called 15131 but _decode_loop() endlessly returns before signalling completion 15132 iff the decoder instance returns GST_FLOW_OK. 15133 Found with: ... ! vaapidecode ! {glimagesink,cluttersink} 15134 https://bugzilla.gnome.org/show_bug.cgi?id=733897 15135 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call] 15136 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15137 151382014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15139 15140 * NEWS: 15141 * configure.ac: 15142 0.5.9. 15143 151442014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15145 15146 * gst/vaapi/gstvaapisink.c: 15147 vaapisink: fix GstVideoOverlay::expose() implementation. 15148 Now that we always track the currently active video buffer, it is 15149 not necessary to automatically increase its reference since this is 15150 implicitly performed in ::show_frame() through the get_input_buffer() 15151 helper from GstVaapiPluginBase class. 15152 This is a regression from a26df80. 15153 151542014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15155 15156 * gst/vaapi/gstvaapidecode.c: 15157 * gst/vaapi/gstvaapipluginutil.c: 15158 vaapidecode: simplify bufferpool configuration. 15159 Rework the logics behind the configuration of an adequate bufferpool, 15160 especially when OpenGL meta or additional capsfeatures are needed. 15161 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched, 15162 and that is not system memory, is now selected by default. 15163 151642014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15165 15166 * gst/vaapi/gstvaapidecode.c: 15167 vaapidecode: fix auto-plugging of vaapisink element. 15168 Make sure to propagate memory:VASurface capsfeature to srcpad caps 15169 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4 15170 core currently miss additional patches available in 1.5-git (1.6). 15171 This is a temporary workaround. 15172 151732014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15174 15175 * configure.ac: 15176 configure: allow builds against GStreamer git (1.5.x). 15177 https://bugzilla.gnome.org/show_bug.cgi?id=733688 15178 151792014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15180 15181 * configure.ac: 15182 configure: fix build with GStreamer 1.4.0 release. 15183 151842014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15185 15186 * configure.ac: 15187 * debian.upstream/Makefile.am: 15188 * debian.upstream/control.in: 15189 debian: fix packaging for new naming scheme. 15190 151912014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15192 15193 * NEWS: 15194 NEWS: updates. 15195 151962014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15197 15198 * configure.ac: 15199 configure: mark support for GStreamer < 1.2 as deprecated. 15200 Supporting anything thing below GStreamer 1.2 is asking for trouble 15201 for keeping up with the required facilities to make efficient pipelines. 15202 Users are invited to upgrade to the very latest GStreamer 1.2.x release, 15203 at the minimum. 15204 152052014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15206 15207 * configure.ac: 15208 configure: mark support for GStreamer 0.10 as obsolete. 15209 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported 15210 and may actually be removed altogether for a future release. There is 15211 no real point to maintain a build for such an ancient GStreamer version 15212 that is not even supported upstream. 15213 152142014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15215 15216 * gst/vaapi/gstvaapisink.c: 15217 * gst/vaapi/gstvaapisink.h: 15218 vaapisink: allow a specific view component to be displayed. 15219 If a multiview stream is decoded, multiple view components are submitted 15220 as is downstream. It is the responsibility of the sink element to display 15221 the required view components. By default, always select the frame buffer 15222 that matches the view-id of the very first frame to be displayed. 15223 However, introduce a "view-id" property to allow the selection of a 15224 specific view component of interest to display. 15225 152262014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15227 15228 * gst/vaapi/gstvaapisink.c: 15229 vaapisink: always keep the last displayed buffer around. 15230 Always record the VA surface that is currently being rendered, no matter 15231 the fact we are using texturedblit or overlay. That's because in some 15232 occasions, we need to refresh or resize the displayed contents based on 15233 new events. e.g. user-resized window. 15234 Besides, it's simpler to track the last video buffer in GstVaapiSink than 15235 through the base sink "last-sample". 15236 152372014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15238 15239 * gst/vaapi/gstvaapipluginbase.c: 15240 * gst/vaapi/gstvaapipluginbase.h: 15241 * gst/vaapi/gstvaapipluginutil.c: 15242 * gst/vaapi/gstvaapisink.c: 15243 vaapisink: add support for "display-name" property. 15244 Add a "display-name" property to vaapisink so that the end user could 15245 select the desired output. Keep "display-name" in-line with the existing 15246 "display" (GstVaapiDisplayXXX type). 15247 So, for X11 or GLX, the "display-name" is the usual display name as we 15248 know for XOpenDisplay(); for Wayland, the "display-name" is the name used 15249 for wl_display_connect(); and for DRM, the "display-name" is actually the 15250 DRI device name. 15251 https://bugzilla.gnome.org/show_bug.cgi?id=722247 15252 152532014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15254 15255 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 15256 window: make gst_vaapi_window_reconfigure() thread-safe. 15257 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is 15258 thread-safe by default, so that upper layer users don't need to handle 15259 that explicitly. 15260 152612013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de> 15262 15263 * gst-libs/gst/vaapi/gstvaapiwindow.c: 15264 * gst-libs/gst/vaapi/gstvaapiwindow.h: 15265 window: allow for updating size from current geometry. 15266 Add gst_vaapi_window_reconfigure() interface to force an update of 15267 the GstVaapiWindow "soft" size, based on the current geometry of the 15268 underlying native window. 15269 This can be useful for instance to synchronize the window size when 15270 the user changed it. 15271 Thanks to Fabrice Bellet for rebasing the patch. 15272 [changed interface to gst_vaapi_window_reconfigure()] 15273 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15274 152752014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15276 15277 * gst-libs/gst/vaapi/gstvaapiwindow.c: 15278 * gst-libs/gst/vaapi/gstvaapiwindow.h: 15279 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 15280 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: 15281 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 15282 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 15283 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 15284 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 15285 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: 15286 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 15287 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 15288 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 15289 window: re-indent all GstVaapiWindow related source code. 15290 152912014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15292 15293 * gst-libs/gst/vaapi/gstvaapidisplay.c: 15294 * gst-libs/gst/vaapi/gstvaapidisplay.h: 15295 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 15296 display: add interface to retrieve the display name. 15297 Add gst_vaapi_display_get_display_name() helper function to determine 15298 the name associated with the underlying native display. Note that for 15299 raw DRM backends, the display name is actually the device path. 15300 153012014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15302 15303 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 15304 display: fix comparison of X11 display names. 15305 Make sure to not only compare display host names, but also the actual 15306 display number. The screen number does not need to be checked at this 15307 time. 15308 153092014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15310 15311 * gst/vaapi/gstvaapidecode.c: 15312 * gst/vaapi/gstvaapivideobufferpool.c: 15313 vaapidecode: add support for VideoAlignment bufferpool option. 15314 Always add VideoAlignment bufferpool option if the downstream element 15315 expects its own pool to be used but does not offer it through a proper 15316 propose_allocation() implementation for instance, and that the ALLOCATION 15317 query does not expose the availability of the Video Meta API. 15318 This fixes propagation of video buffer stride information to Firefox. 15319 153202014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15321 15322 * gst/vaapi/gstvaapivideomemory.c: 15323 vaapivideomemory: always prefer native VA surface formats. 15324 Make sure to always prefer native internal formats for the VA surfaces 15325 that get allocated. Also disable "direct-rendering" mode in this case. 15326 This is needed so that to make sure that anything that gets out of the 15327 decoder, or anything that gets into the encoder, is in native format 15328 for the hardware, and thus the driver doesn't need to perform implicit 15329 conversions in there. Interop with SW elements is still available with 15330 fast implementations of VA imaging APIs. 15331 153322014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15333 15334 * gst/vaapi/gstvaapivideomemory.c: 15335 vaapivideomemory: disallow memory shares across buffers, use a copy. 15336 Forbid shares of GstMemory instances, and rather make copy of it. This 15337 effectively copies the GstMemory structure and enclosed metadata, but 15338 this does not copy the VA surface contents itself. It should though. 15339 This fixes preroll and makes sure to not download garbage for the first 15340 frame when a SW rendering sink is used. 15341 153422014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15343 15344 * gst/vaapi/gstvaapivideomemory.c: 15345 * gst/vaapi/gstvaapivideomemory.h: 15346 vaapivideomemory: use an image pool to cache objects. 15347 Use an image pool to hold VA images to be used for downloads/uploads 15348 of contents for the associated surface. 15349 This is an optmization for size. So, instead of creating as many VA 15350 images as there are buffers (then VA surfaces) allocated, we only 15351 maintain a minimal set of live VA images, thus preserving memory 15352 resources. 15353 153542014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15355 15356 * gst/vaapi/gstvaapivideomemory.c: 15357 vaapivideomemory: forbid R/W mappings if non direct-rendering mode. 15358 Disable read-write mappings if "direct-rendering" is not supported. 15359 Since the ordering of read and write operations is not specified, 15360 this would require to always download the VA surface on _map(), then 15361 commit the temporary VA image back to the VA surface on _unmap(). 15362 Some SW decoding plug-in elements still use R/W mappings though. 15363 https://bugzilla.gnome.org/show_bug.cgi?id=733242 15364 153652014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15366 15367 * gst/vaapi/gstvaapivideomemory.c: 15368 vaapivideomemory: minor code clean-ups. 15369 Fix error messages introduced in the previous commit for the _map() 15370 imaplementation. Also use the new get_image_data() helper function 15371 to determine the base pixels data buffer from a GstVaapiImage when 15372 updating the video info structure from it. 15373 153742014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15375 15376 * gst/vaapi/gstvaapivideomemory.c: 15377 * gst/vaapi/gstvaapivideomemory.h: 15378 vaapivideomemory: add support for raw pixels mappings. 15379 Allow raw pixels of the whole frame to be mapped read-only. i.e. in 15380 cases where the buffer pool is allocated without VideoMeta API, thus 15381 individual planes cannot be mapped. 15382 This is initial support for Firefox >= 30. 15383 https://bugzilla.gnome.org/show_bug.cgi?id=731886 15384 153852014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15386 15387 * gst/vaapi/gstvaapivideomemory.c: 15388 vaapivideomemory: fix determination of the surface pool format. 15389 While creating the vaapi video allocator, make sure the associated 15390 surface pool has correct format instead of defaulting to NV12 video 15391 format even though there is no direct rendering support. 15392 https://bugzilla.gnome.org/show_bug.cgi?id=732691 15393 153942014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15395 15396 * gst/vaapi/gstvaapivideomemory.c: 15397 vaapivideomemory: fix association of surface to proxy. 15398 Make sure to always update the VA surface pointer whenever the proxy 15399 changes. This used to only work when the VA surface is written to, in 15400 interop with SW element ("upload" feature), and this now fixes cases 15401 when the VA surface is needed for reading, in interop with SW element 15402 ("download" feature). 15403 154042014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15405 15406 * gst/vaapi/gstvaapidecode.c: 15407 * gst/vaapi/gstvaapipluginutil.c: 15408 * gst/vaapi/gstvaapivideomemory.c: 15409 plugins: expose I420 format for interop with SW elements. 15410 Always expose I420 format by default when the VA surface could be 15411 mapped for interoperability with non harware accelerated elements. 15412 However, the default behaviour remains the auto-plugging of vaapi 15413 elements, down to the sink. 15414 Side effect: "direct-rendering" mode is also disabled most of the 15415 times as plain memcpy() from uncached speculative write combining 15416 memory is not going to be efficient enough. 15417 154182014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15419 15420 * gst/vaapi/gstvaapidecode.c: 15421 * gst/vaapi/gstvaapivideomemory.c: 15422 plugins: allow download capability to vaapidecode element. 15423 Fix support for VA surface download capability in vaapidecode element 15424 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver, 15425 but also the libva-intel-driver while performing hardware accelerated 15426 conversions from the native VA surface format (NV12) to the desired 15427 output VA image format. 15428 For instance, this fixes pipelines involving vaapidecode ! xvimagesink. 15429 https://bugzilla.gnome.org/show_bug.cgi?id=733243 15430 154312014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info> 15432 15433 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 15434 decoder: mpeg4: fix picture decoder return value for skipped frames. 15435 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME 15436 when a frame should be skipped, so the stream processing is not stalled. 15437 https://bugzilla.gnome.org/show_bug.cgi?id=733324 15438 154392014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com> 15440 15441 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 15442 decoder: mpeg2: respect any input PTS provided for a frame. 15443 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated 15444 frame timestamps within a GOP, even when it's been fed input PTS for 15445 every frame. 15446 That leads to incorrect output timestamps in some situations - for example 15447 live playback where input timestamps have been scaled based on arrival time 15448 from the network and don't exactly match the framerate. 15449 https://bugzilla.gnome.org/show_bug.cgi?id=732719 15450 154512014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15452 15453 * gst-libs/gst/vaapi/gstvaapiobject.c: 15454 GstVaapiObject: make gst_vaapi_object_new() more robust. 15455 Forbid GstVaapiObject to be created without an associated klass spec. 15456 It is mandatory that the subclass implements an adequate .finalize() 15457 hook, so it shall provide a valid GstVaapiObjectClass. 15458 https://bugzilla.gnome.org/show_bug.cgi?id=722757 15459 [made non-NULL klass argument to gst_vaapi_object_new() a requirement] 15460 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15461 154622014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15463 15464 * gst-libs/gst/vaapi/gstvaapiobject.c: 15465 GstVaapiObject: initialize the derived object data with init() hook. 15466 Call the subclass .init() function in gst_vaapi_object_new(), if 15467 needed. The default behaviour is to zero initialize the subclass 15468 object data, then the .init() function can be used to initialize 15469 fields to non-default values, e.g. VA object ids to VA_INVALID_ID. 15470 Also fix the gst_vaapi_object_new() description, which was merely 15471 copied from GstVaapiMiniObject. 15472 https://bugzilla.gnome.org/show_bug.cgi?id=722757 15473 [changed to always zero initialize the subclass] 15474 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15475 154762014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com> 15477 15478 * gst/vaapi/gstvaapidecode.c: 15479 vaapidecode: make decoder work with playbin 15480 When playbin/decodebin builds the pipeline, it puts decoders and sinks 15481 into different bins and forwards the queries from bins to bins. So in 15482 the initials steps the pipeline is built iteratively by playbin and 15483 looks like this : 15484 [filesrc] 15485 [filesrc] -> [typefind] 15486 [filesrc] -> [typefind] -> [demuxer] 15487 [filesrc] -> [typefind] -> [demuxer] -> [decoder] 15488 At this point the decoder is asked for its SRC caps and it will make a 15489 choice based on what gst_pad_peer_query_caps() returns. The problem is 15490 that the caps returns at that point includes caps features like ANY, 15491 essentially because playbin can plug in additional elements like 15492 videoscale, videoconv or deinterlace. 15493 This patch adds a another call to 15494 gst_vaapi_find_preferred_caps_feature() when the decoder decides its 15495 allocation, to make sure we asks the downstream elements when the 15496 entire pipeline has been built. 15497 https://bugzilla.gnome.org/show_bug.cgi?id=731645 15498 154992014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 15500 15501 * gst/vaapi/gstvaapipostproc.c: 15502 vaapipostproc: don't let tmp_rect go out of scope. 15503 A compiler change showed me that tmp_rect went out of scope before 15504 it was used. Move it to the beginning of the function instead. 15505 https://bugzilla.gnome.org/show_bug.cgi?id=726363 15506 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 15507 [added guards for GStreamer 0.10 builds] 15508 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15509 155102014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15511 15512 * AUTHORS: 15513 AUTHORS: updates. 15514 155152014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15516 15517 * README: 15518 README: updates. 15519 Drop references to deprecated plugins (vaapiupload, vaapidownload), 15520 mention that support for GStreamer 0.10 is deprecated, make overview 15521 more descriptive in certain aspects. 15522 155232014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15524 15525 * NEWS: 15526 NEWS: updates. 15527 155282014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15529 15530 * README: 15531 * configure.ac: 15532 build: mention that support for GStreamer 0.10 is deprecated. 15533 155342014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15535 15536 * configure.ac: 15537 * gst/vaapi/gstvaapidecode.c: 15538 build: fix for GStreamer 0.10. 15539 155402014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15541 15542 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch: 15543 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch: 15544 * patches/videoparsers/series.frag: 15545 build: fix for GStreamer 1.0.x. 15546 155472014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15548 15549 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15550 decoder: h264: detect incorrectly paired fields in frames. 15551 When a DPB flush is required, e.g. at a natural and of stream or issued 15552 explicitly through an IDR, try to detect any frame left in the DPB that 15553 is interlaced but does not contain two decoded fields. In that case, mark 15554 the picture as having a single field only. 15555 This avoids a hang while decoding tv_cut.mkv. 15556 155572014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15558 15559 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15560 decoder: h264: simplify the DPB output process. 15561 Simplify the dpb_output() function to exclusively rely on the frame store 15562 buffer to output, since this is now always provided. Besides, also fix 15563 cases where split fields would not be displayed. 15564 This is a regression from f48b1e0. 15565 155662014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15567 15568 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch: 15569 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch: 15570 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch: 15571 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch: 15572 * patches/videoparsers/series.frag: 15573 h264parse: drop patches merged upstream. 15574 0003-h264parse-fix-and-optimize-NAL-collection-function.patch 15575 0005-h264parse-introduce-new-state-tracking-variables.patch 15576 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch 15577 0007-h264parse-fix-collection-of-access-units-to-preserve.patch 15578 155792014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15580 15581 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15582 decoder: h264: fix memory leak in PPS. 15583 Cope with latest changes from codecparsers/h264. It is now required 15584 to explicitly clear the GstH264PPS structure as it could contain 15585 additional allocations (slice_group_ids). 15586 155872014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15588 15589 * ext/codecparsers: 15590 codecparsers: update to gst-vaapi-branch commit 2d53b69. 15591 c4ace00 h264parse: fix collection of access units to preserve config headers 15592 0f9f7c9 h264parse: improve conditions for skipping NAL units 15593 9ffb25c h264parse: introduce new state tracking variables 15594 64955d3 h264parse: fix and optimize NAL collection function 15595 13cd2a3 h264: clarifications and documentation fixes 15596 53e7dd1 h264: fix identification of EOSEQ and EOS NALs 15597 18f0de0 h264: fix memory leak in GstH264PPS 15598 fdcb54c h264: fix typo in GstH264VUIParams description 15599 fd4dae9 vp8: move up built-in range decoder private data 15600 156012014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15602 15603 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 15604 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 15605 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 15606 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 15607 decoder: propagate MVC metadata ("view-id", head of multiview set). 15608 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in 15609 bundle", and really expresses the first view component of a multi 15610 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB 15611 set if VOIdx = 0. 15612 Likewise, new API is exposed to retrieve the associated "view-id". 15613 156142014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15615 15616 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 15617 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 15618 decoder: propagate "one-field" flags. 15619 Allow decoders to set the "one-field" attribute when the decoded frame 15620 genuinely has a single field, or if the second field was mis-decoded but 15621 we still want to display the first field. 15622 156232014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15624 15625 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 15626 decoder: output decoded frames only once. 15627 Make sure to output the decoded picture, and push the associated 15628 GstVideoCodecFrame, only once. The frame fully represents what needs 15629 to be output, included for interlaced streams. Otherwise, the base 15630 GstVideoDecoder class would release the frame twice. 15631 Anyway, the general process is to output decoded frames only when 15632 they are complete. By complete, we mean a full frame was decoded or 15633 both fields of a frame were decoded. 15634 156352014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15636 15637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15638 decoder: h264: decode current picture earlier. 15639 Slightly optimize decoding process by submitting the current VA surface 15640 for decoding earlier to the hardware, and perform the reference picture 15641 marking process and DPB update process afterwards. 15642 This is a minor optimization to let the video decode engine kick in work 15643 earlier, thus improving parallel resources utilization. 15644 156452014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15646 15647 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15648 decoder: h264: fix output of second field when first field is not in DPB. 15649 Fix decoding of interlaced streams where a first field (e.g. B-slice) 15650 was immediately output and the current decoded field is to be paired 15651 with that former frame, which is no longer in DPB. 15652 https://bugzilla.gnome.org/show_bug.cgi?id=701340 15653 156542014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15655 15656 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15657 decoder: h264: slightly optimize the process to detect new pictures. 15658 Optimize the process to detect new pictures or start of new access 15659 units by checking if the previous NAL unit was the end of a picture, 15660 or the end of the previous access unit. 15661 156622014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15663 15664 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15665 decoder: h264: handle access unit ("au") optimization. 15666 Optimize parsing when buffers are supplied with access unit alignment. 15667 This helps determining faster when the end of an access unit is reached. 15668 156692014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15670 15671 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15672 decoder: h264: fix tracking of DPB size changes. 15673 Add support for MVC streams with multiple SPS and subset SPS headers 15674 emitted regularly, e.g. at around every I-frame. Track the maximum 15675 number of views in ensure_context() and really reset the DPB size to 15676 the expected value, always. i.e. even if it decreased. dpb_reset() 15677 only cares of ensuring the DPB allocation. 15678 156792014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15680 15681 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15682 decoder: h264: fix the DPB compaction process. 15683 Fix the compaction process when the DPB is cleared for a specific 15684 view, i.e. fix the process of filling in the holes resulting from 15685 removing frame buffers matching the current picture. 15686 156872014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15688 15689 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15690 encoder: h264: generate new SPS only when codec config changed. 15691 It is not necessary to periodically send SPS or subset SPS headers. 15692 This is up to the upper layer (e.g. transport layer) to decide on 15693 if/how to periodically submit those. For now, only generate new SPS 15694 or subset SPS headers when the codec config changed. 15695 Note: the upper layer could readily determine the config headers 15696 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function. 15697 https://bugzilla.gnome.org/show_bug.cgi?id=732083 15698 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15699 157002014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15701 15702 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15703 encoder: h264: track encoder config changes. 15704 Track and report when encoder configuration changed. For now, this covers 15705 resolution, profile/level and bitrate changes. 15706 157072014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15708 15709 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15710 encoder: h264: add pixel-aspect-ratio to VUI parameters. 15711 Report sample aspect ratio (SAR) as present, and make it match what 15712 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the 15713 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE. 15714 157152014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15716 15717 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15718 encoder: h264: fix number of anchor and non-anchor reference pictures. 15719 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0, 15720 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet 15721 supported. 15722 157232014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15724 15725 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15726 encoder: h264: fix timing_info_present_flag value in subset SPS. 15727 When the seq_parameter_set_data() syntax structure is present in a subset 15728 sequence parameter set and vui_parameters_present_flag is equal to 1, then 15729 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1). 15730 157312014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15732 15733 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15734 encoder: h264: add cpbBrNalFactor values for MVC profiles. 15735 157362014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15737 15738 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: 15739 h264parse: fix detection of access unit boundaries for MVC. 15740 The gst_h264_parse_collect_nal() function is a misnomer. In reality, 15741 this function is used to determine access unit boundaries, i.e. that 15742 is the key function for alignment=au output format generation. 15743 157442014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15745 15746 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch: 15747 * patches/videoparsers/series.frag: 15748 h264parse: fix collection of access units to preserve config headers. 15749 Always use a GstAdapter when collecting access units (alignment="au") 15750 in either byte-stream or avcC format. This is required to properly 15751 preserve config headers like SPS and PPS when invalid or broken NAL 15752 units are subsequently parsed. 15753 More precisely, this fixes scenario like: 15754 <SPS> <PPS> <invalid-NAL> <slice> 15755 where we used to reset the output frame buffer when an invalid or 15756 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus 15757 preventing the next slice unit to be decoded, should this also 15758 represent any valid data. 15759 https://bugzilla.gnome.org/show_bug.cgi?id=732203 15760 157612014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15762 15763 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: 15764 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch: 15765 * patches/videoparsers/series.frag: 15766 h264parse: improve conditions for skipping NAL units. 15767 Carefully track cases when skipping broken or invalid NAL units is 15768 necessary. In particular, always allow NAL units to be processed 15769 and let that gst_h264_parse_process_nal() function decide on whether 15770 the current NAL needs to be dropped or not. 15771 This fixes parsing of streams with SEI NAL buffering_period() message 15772 inserted between SPS and PPS, or SPS-Ext NAL following a traditional 15773 SPS NAL unit, among other cases too. 15774 Practical examples from the H.264 AVC conformance suite include 15775 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E 15776 when parsing in stream-format=byte-stream,alignment=au mode. 15777 https://bugzilla.gnome.org/show_bug.cgi?id=732203 15778 157792014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15780 15781 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: 15782 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch: 15783 * patches/videoparsers/series.frag: 15784 h264parse: introduce new state tracking variables. 15785 Improve parser state tracking by introducing new flags reflecting 15786 it: "got-sps", "got-pps" and "got-slice". This is an addition for 15787 robustness purposes. 15788 Older have_sps and have_pps variables are kept because they have 15789 a different meaning. i.e. they are used for deciding on when to 15790 submit updated caps or not, and rather mean "have new SPS/PPS to 15791 be submitted?" 15792 157932014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15794 15795 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch: 15796 * patches/videoparsers/series.frag: 15797 h264parse: default to byte-stream/nalu format (Annex B). 15798 Always default to stream-format=byte-stream,alignment=nalu if avcC 15799 format was not detected. This is the natural stream format specified 15800 in the standard (Annex.B): a series of NAL units prefixed with the 15801 usual start code. 15802 https://bugzilla.gnome.org/show_bug.cgi?id=732167 15803 158042014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15805 15806 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch: 15807 * patches/videoparsers/series.frag: 15808 h264parse: fix and optimize NAL collection function. 15809 Use gst_h264_parser_identify_nalu_unchecked() to identify the next 15810 NAL unit. We don't want to parse the full NAL unit, but only the 15811 header bytes and possibly the first RBSP byte for identifying the 15812 first_mb_in_slice syntax element. 15813 Also fix check for failure when returning from that function. The 15814 only success condition for that is GST_H264_PARSER_OK, so use it. 15815 https://bugzilla.gnome.org/show_bug.cgi?id=732154 15816 158172014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15818 15819 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15820 encoder: h264: fix NAL unit types in packed headers. 15821 Submit Prefix NAL headers (nal_unit_type = 14) before every packed 15822 slice header (nal_unit_type = 1 or 5) only for the base view. In non 15823 base views, a Coded Slice Extension NAL header (nal_unit_type = 20) 15824 is required, with an appropriate nal_unit_header_mvc_extension() in 15825 the NAL header bytes. 15826 https://bugzilla.gnome.org/show_bug.cgi?id=732083 15827 158282014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15829 15830 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15831 encoder: h264: add missing field in packed Subset SPS header. 15832 Write the missing num_level_values_signalled_minus1 syntax element 15833 into the packed header for subset sequence parameter set. 15834 https://bugzilla.gnome.org/show_bug.cgi?id=732083 15835 158362014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15837 15838 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15839 decoder: h264: fix marking of non-reference picture into DPB. 15840 Fix search for a picture in the DPB that has a lower POC value than 15841 the current picture. The dpb_find_lowest_poc() function will return 15842 a picture with the lowest POC in DPB and that is marked as "needed 15843 for output", but an additional check against the actual POC value 15844 of the current picture is needed. 15845 This is a regression from 1c46990. 15846 https://bugzilla.gnome.org/show_bug.cgi?id=732130 15847 158482014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15849 15850 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15851 decoder: h264: fix DPB clear when no decoding actually started. 15852 Fix dpb_clear() to clear previous frame buffers only if they actually 15853 exist to begin with. If the decoder bailed out early, e.g. when it 15854 does not support a specific profile, that array of previous frames 15855 might not be allocated beforehand. 15856 158572014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15858 15859 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15860 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 15861 * gst/vaapi/gstvaapidecode.c: 15862 decoder: h264: add support for NALU "alignment" optimization. 15863 We can avoid scanning for start codes again if the bitstream is fed 15864 in NALU chunks. Currently, we always scan for start codes, and keep 15865 track of remaining bits in a GstAdapter, even if, in practice, we 15866 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with 15867 "nal" alignment. 15868 https://bugzilla.gnome.org/show_bug.cgi?id=723284 15869 [use gst_adapter_available_fast() to determine the top buffer size] 15870 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15871 158722014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15873 15874 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 15875 decoder: h264: fix caps to report interlace-mode accordingly. 15876 The `vaapipostproc' element could never determine if the H.264 stream 15877 was interlaced, and thus always assumed it to be progressive. Fix the 15878 H.264 decoder to report interlace-mode accordingly, thus allowing the 15879 vaapipostproc element to automatically enable deinterlacing. 15880 158812014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15882 15883 * gst/vaapi/gstvaapipostproc.c: 15884 vaapipostproc: don't crash with dynamic framerate (0/1). 15885 Avoid reaching an assert if dynamic framerates (0/1) are used. One 15886 way to solve this problem is to just stick field_duration to zero. 15887 However, this means that, in presence of interlaced streams, the 15888 very first field will never be displayed if precise presentation 15889 timestamps are honoured. 15890 https://bugzilla.gnome.org/show_bug.cgi?id=729604 15891 158922014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 15893 15894 * gst/vaapi/gstvaapipostproc.c: 15895 vaapipostproc: create filter surface pool if it does not exist yet. 15896 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and 15897 recreating filter_pool. Unfortunately, this also meant it didn't create 15898 it if it did not exist. 15899 Fix it to always create the buffer pool if it does not exist. 15900 https://bugzilla.gnome.org/show_bug.cgi?id=723834 15901 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 15902 159032013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com> 15904 15905 * gst/vaapi/gstvaapipostproc.c: 15906 vaapipostproc: reset deinterlacer state when there is a discontinuity. 15907 Reset deinterlacer state, i.e. past reference frames used for advanced 15908 deinterlacing, when there is some discontinuity detected in the course 15909 of processing source buffers. 15910 This fixes support for advanced deinterlacing when a seek occurred. 15911 https://bugzilla.gnome.org/show_bug.cgi?id=720375 15912 [fixed type of pts_diff variable, fetch previous buffer PTS from the 15913 history buffer, reduce heuristic for detecting discontinuity] 15914 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15915 159162014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15917 15918 * gst/vaapi/gstvaapipostproc.c: 15919 vaapipostproc: add support for crop regions in VPP mode. 15920 Apply video cropping regions stored in GstVideoCropMeta, or in older 15921 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes, 15922 the crop meta are already propagated to the output buffers. 15923 https://bugzilla.gnome.org/show_bug.cgi?id=720730 15924 159252014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 15926 15927 * gst/vaapi/gstvaapipostproc.c: 15928 vaapipostproc: make deinterlace-mode behave as expected. 15929 deinterlace-mode didn't behave in the way you'd expect if you have 15930 past experience of the deinterlace element. There were two bugs: 15931 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed". 15932 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive. 15933 Fix these up, and add assertions and error messages to detect cases that 15934 aren't handled. 15935 https://bugzilla.gnome.org/show_bug.cgi?id=726361 15936 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 15937 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15938 159392014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 15940 15941 * gst/vaapi/gstvaapidecode.c: 15942 vaapidecode: do not discard video info props when the format changed. 15943 gst_video_info_set_format() does not preserve video info properties. In 15944 order to keep important information in the caps such as interlace mode, 15945 framerate, pixel aspect ratio, ... we need to manually copy back those 15946 properties after setting the new video format. 15947 https://bugzilla.gnome.org/show_bug.cgi?id=722276 15948 159492014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com> 15950 15951 * gst/vaapi/gstvaapidecode.c: 15952 vaapidecode: plug a memory leak. 15953 It can happen that there is a pool provided that does not advertise 15954 the vappivideometa. We should unref that pool before using our own. 15955 Discovered with vaapidecode ! {glimagesink,cluttersink} 15956 https://bugzilla.gnome.org/show_bug.cgi?id=724957 15957 [fixed compilation by adding the missing semi-colon] 15958 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15959 159602014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15961 15962 * gst/vaapi/gstvaapidecode.c: 15963 vaapidecode: parse source data until a frame is obtained. 15964 Parse any pending data until a complete frame is obtained. This is a 15965 memory optimization to avoid expansion of video packets stuffed into 15966 the GstAdapter, and a fix to EOS condition to detect there is actually 15967 pending data that needs to be decoded, and subsequently output. 15968 https://bugzilla.gnome.org/show_bug.cgi?id=731831 15969 159702014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15971 15972 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 15973 encoder: h264: fix multiple slices support in packed headers mode. 15974 Handle packedi slice headers and packed raw data on a per-slice basis, 15975 which is necessary for multi slice encoding. 15976 159772014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 15978 15979 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 15980 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 15981 encoder: add infrastructure for per-slice handling of packed headers. 15982 The packed slice header and packed raw data need to be paired with 15983 the submission of VAEncSliceHeaderParameterBuffer. So handle them 15984 on a per-slice basis insted of a per-picture basis. 15985 [removed useless initializer] 15986 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15987 159882014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 15989 15990 * gst/vaapi/gstvaapisink.c: 15991 vaapisink: fix initialization with "drm" display type. 15992 Force early initializatin of the GstVaapiDisplay so that to make sure 15993 that the sink element display object is presented first to upstream 15994 elements, as it will be correctly featuring the requested display type 15995 by the user. 15996 Otherwise, we might end up in situations where a VA/X11 display is 15997 initialized in vaapidecode, then we try VA/DRM display in vaapisink 15998 (as requested by the "display" property), but this would cause a failure 15999 because we cannot acquire a DRM display that was previously acquired 16000 through another backend (e.g. VA/X11). 16001 160022014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16003 16004 * gst/vaapi/gstvaapipluginbase.c: 16005 plugins: fix initialization with foreign context. 16006 When a new display is settled through GstElement::set_context() (>= 1.2), 16007 or GstVideoContext::set_context() (<= 1.0), then we shall also update the 16008 associated display type. 16009 160102014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16011 16012 * Makefile.am: 16013 * configure.ac: 16014 * ext/Makefile.am: 16015 * gst/vaapi/Makefile.am: 16016 * gst/vaapi/gstvaapiparse.c: 16017 * gst/vaapi/gstvaapiparse.h: 16018 * patches/Makefile.am: 16019 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch: 16020 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch: 16021 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch: 16022 * patches/videoparsers/Makefile.am: 16023 * patches/videoparsers/series.frag: 16024 plugins: add built-in video parsers as "vaapiparse" element. 16025 The built-in video parsers elements are built into a single DSO named 16026 libgstvaapi_parse.so. The various video parsers could be accessed as 16027 vaapiparse_CODEC. 16028 For now, this only includes a modified version of h264parse so that to 16029 support H.264 MVC encoded streams. 16030 160312014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16032 16033 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16034 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces. 16035 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed 16036 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag(). 16037 160382014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16039 16040 * ext/codecparsers: 16041 codecparsers: update to gst-vaapi-branch commit d6325ac. 16042 7d8d045 h264parse: use new gst_h264_video_calculate_framerate() 16043 d2f965a h264parse: set field_pic_flag when parsing a slice header 16044 24c15b8 Import h264parse 16045 a9283e5 bytereader: Use concistant derefence method 16046 a8252c6 bytereader: Use pointer instead of index access 16047 b1bebfc Import GstBitReader and GstByteReader 16048 2f58788 h264: recognize SVC NAL units 16049 4335da5 h264: fix SPS copy code for MVC 16050 cf9b6dc h264: fix quantization matrix conversion routine names 16051 b11ce2a h264: add gst_h264_video_calculate_framerate() 16052 126dc6f add C++ guards for MPEG-4 and VP8 parsers 16053 160542014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16055 16056 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16057 decoder: h264: factor out DPB pruning for MVC. 16058 Factor out the removal process of unused inter-view only reference 16059 pictures from the DPB, prior to the possible insertion of the current 16060 picture. 16061 Ideally, the compiler could still opt for generating two loops. But 16062 at least, the code is now clearer for maintenance. 16063 160642014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16065 16066 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16067 decoder: h264: clean-ups. 16068 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use 16069 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro. 16070 160712014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16072 16073 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16074 decoder: h264: improve pruning of unused MVC inter-view frames. 16075 Improve process for the removal of pictures from DPB before possible 16076 insertion of the current picture (C.4.4) for H.264 MVC inter-view only 16077 reference components. In particular, handle cases where picture to be 16078 inserted is not the last one of the access unit and if it was already 16079 output and is no longer marked as used for reference, including for 16080 decoding next view components within the same access unit. 16081 160822014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16083 16084 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16085 decoder: h264: improve DPB bumping process for MVC. 16086 While invoking the DPB bumping process in presence of many views, 16087 it could be necessary to output previous pictures that are ready, 16088 in a whole. i.e. emitting all view components from the very first 16089 view order index zero to the very last one in its original access 16090 unit; and not starting from the view order index of the picture 16091 that caused the DPB bumping process to be invoked. 16092 As a reminder, the maximum number of frames in DPB for MultiView 16093 High profile with more than 2 views is not necessarily a multiple 16094 of the number of views. 16095 This fixes decoding of MVCNV-4.264. 16096 160972014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16098 16099 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16100 decoder: h264: fix inter-view references array growth. 16101 Let the utility layer handle dynamic growth of the inter-view pictures 16102 array. By definition, setting a new size to the array will effectively 16103 grow the array, but would also fill in the newly created elements with 16104 empty entries (NULL), thus also increasing the reported length, which 16105 is not correct. 16106 161072014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16108 16109 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16110 decoder: h264: reduce ReferenceFrames entries to the essential set. 16111 When decoding Multiview High profile streams with a large number of 16112 views, it is not possible to make the VAPictureParameterBufferH264. 16113 ReferenceFrames[] array hold the complete DPB, with all possibly 16114 active pictures to be used for inter-view prediction in the current 16115 access unit. 16116 So reduce the scope of the ReferenceFrames[] array to only include 16117 the set of reference pictures that are going to be used for decoding 16118 the current picture. Basically, this is a union of all RefPicListX[] 16119 array, for all slices constituting the decoded picture. 16120 161212014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16122 16123 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16124 decoder: h264: fix MVC inter-view prediction process. 16125 The inter-view reference components and inter-view only reference 16126 components that are included in the reference picture lists shall 16127 be considered as not being marked as "used for short-term reference" 16128 or "used for long-term reference". This means that reference flags 16129 should all be removed from VAPictureH264.flags. 16130 This fixes decoding of MVCNV-2.264. 16131 161322014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16133 16134 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16135 decoder: h264: fix detection of profile changes for MVC. 16136 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to 16137 be careful to detect profiles changes and not reset the underlying 16138 VA context erroneously. In MVC situations, we could indeed get a 16139 profile_idc change for every SPS that gets activated, alternatively 16140 (base-view -> non-base view -> base-view, etc.). 16141 An improved fix would be to characterize the exact profile to use 16142 once and for all when SPS NAL units are parsed. This would also 16143 allow for fallbacks to a base-view decoding only mode. 16144 161452014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16146 16147 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16148 encoder: h264: drop extraneous definitions. 16149 Re-use definitions from the codecparser headers instead of duplicating 16150 them here again. That covers NALU definitions and slice types. 16151 161522014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16153 16154 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16155 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt. 16156 https://bugzilla.gnome.org/show_bug.cgi?id=727418 16157 161582014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16159 16160 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16161 encoder: h264: don't allow CABAC with Extended profile. 16162 The H.264 specification does not support CABAC entropy coding for the 16163 Extended profile. 16164 https://bugzilla.gnome.org/show_bug.cgi?id=727418 16165 161662014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16167 16168 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16169 encoder: h264: use packed headers mode for MVC encoding. 16170 Exclusively use VA drivers that support raw packed headers for encoding. 16171 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This 16172 provides for better compatibility accross the various VA drivers and HW 16173 generations since no particular API is needed beyond what readily exists. 16174 161752014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16176 16177 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16178 encoder: h264: add support for packed slice headers. 16179 https://bugzilla.gnome.org/show_bug.cgi?id=722905 16180 161812014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16182 16183 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16184 encoder: h264: store subset sps to generate the codec-data 16185 Store the SubsetSPS nal unit which we need for MVC specific 16186 codec_data generation. 16187 161882014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16189 16190 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16191 encoder: h264: fix MVC pipeline hang while encoding with B-frames. 16192 Since we are encoding each view independently from each other, we 16193 need a higher number of pre-allocated surfaces to be used as the 16194 reconstructed frames. For Stereo High profile encoding, this means 16195 to effectively double the number of frames to be stored in the DPB. 16196 161972014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com> 16198 16199 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16200 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 16201 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 16202 * gst/vaapi/gstvaapiencode_h264.c: 16203 encoder: h264: add initial support for H.264 Stereo High profile. 16204 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL 16205 for non-base-view streams encoding, and the usual SPS, PPS and Slice 16206 NALs for base-view encoding. 16207 The H.264 Stereo High profile encoding mode will be turned on when the 16208 "num-views" parameter is set to 2. The source (raw) YUV frames will be 16209 considered as Left/Right view, alternatively. 16210 Each of the two views has its own frames reordering pool and reference 16211 frames list management system. Inter-view references are not supported 16212 yet, so the views are encoded independently from each other. 16213 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com> 16214 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS] 16215 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16216 162172014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com> 16218 16219 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16220 encoder: h264: wrap pools for refs and frames reordering. 16221 Create structures to maintain the reference frames list (RefPool) and 16222 frames reordering (ReorderPool) logic. 16223 This is a prerequisite for H.264 MVC support. 16224 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com> 16225 162262014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com> 16227 16228 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16229 encoder: h264: add provisional support for subset SPS headers. 16230 Add provisions to write subset SPS headers to the bitstream in view 16231 to supporting the H.264 MVC specification. 16232 This assumes the libva "staging" branch is in use. 16233 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com> 16234 162352013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com> 16236 16237 * gst-libs/gst/vaapi/gstvaapiprofile.c: 16238 * gst-libs/gst/vaapi/gstvaapiutils.c: 16239 utils: add H.264 MVC profiles. 16240 Add "MultiView High" and "Stereo High" definitions. 16241 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com> 16242 [require VA-API >= 0.35.2 for MVC profiles] 16243 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16244 162452014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16246 16247 * gst-libs/gst/vaapi/gstvaapiprofile.c: 16248 * gst-libs/gst/vaapi/gstvaapiutils.c: 16249 utils: only enable VP8 profiles for newer VA-API versions. 16250 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings 16251 involving VP8 codec on earlier versions of the API. 16252 162532014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16254 16255 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16256 decoder: h264: compute view ids only once per slice. 16257 Optimize lookups of view ids / view order indices by caching the result 16258 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This 16259 terribly simplifies is_new_access_unit() and find_first_field() functions. 16260 162612014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16262 16263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16264 decoder: h264: add support for MVC interlaced streams. 16265 Fix support for MVC Stereo High profile streams with interlaced frames. 16266 Also improve the detection logic of the first field. 16267 162682014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16269 16270 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16271 decoder: h264: add MVC profiles compatibility logic. 16272 Add safe fallbacks for MVC profiles: 16273 - all MultiView High profile streams with 2 views at most can be decoded 16274 with a Stereo High profile compliant decoder ; 16275 - all Stereo High profile streams with only progressive views can be 16276 decoded with a MultiView High profile compliant decoder ; 16277 - all drivers that support slice-level decoding could normally support 16278 MVC profiles when the DPB holds at most 16 frames. 16279 162802014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16281 16282 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16283 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 16284 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 16285 decoder: h264: add initial support for MVC. 16286 https://bugzilla.gnome.org/show_bug.cgi?id=721772 16287 162882014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16289 16290 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16291 decoder: h264: dynamically allocate the DPB. 16292 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions 16293 for supporting the MVC allocation requirements. 16294 162952014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16296 16297 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16298 decoder: h264: fix detection of access unit boundaries. 16299 In order to have a stricter conforming implementation, we need to carefully 16300 detect access unit boundaries. Additional operations could be necessary to 16301 perform at those boundaries. 16302 163032013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16304 16305 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16306 decoder: h264: detect the first VCL NAL unit of a picture for MVC. 16307 Detect the first VCL NAL unit of a picture for MVC, based on the 16308 view_id as per H.7.4.1.2.4. Note that we only need to detect new 16309 view components. 16310 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16311 163122013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16313 16314 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16315 decoder: h264: properly handle Prefix NAL units. 16316 Always cache the previous NAL unit so that we could check whether 16317 there is a Prefix NAL unit immediately preceding the current slice 16318 or IDR NAL unit. In that case, the NAL unit metadata is copied into 16319 the current NAL unit. Otherwise, some default values are inferred, 16320 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1. 16321 [infer default values for slice if previous NAL was not a Prefix] 16322 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16323 163242013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com> 16325 16326 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16327 decoder: h264: add support for MVC base views. 16328 Allow decoding for base views of MVC encoded streams. For now, just skip 16329 the slice extension and prefix NAL units, and skip non-base view frames. 16330 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com> 16331 [fixed memory leak, improved check for MVC NAL units] 16332 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16333 163342014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16335 16336 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16337 decoder: h264: simplify storage of decoded picture into DPB. 16338 Factor out process by which the decoded picture with the lowest POC 16339 is found, and possibly output. Likewise, the storage and marking of 16340 a reference decoded, or non-reference decoded picture, into the DPB 16341 could also be simplified as they mostly share the same operations. 16342 163432014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16344 16345 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16346 decoder: h264: minor clean-ups. 16347 Make init_picture_ref_lists() more consistent with other functions 16348 related to the reference marking process by supplying the current 16349 picture as argument. 16350 163512014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16352 16353 * gst-libs/gst/vaapi/gstvaapidisplay.c: 16354 * gst-libs/gst/vaapi/gstvaapidisplay.h: 16355 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 16356 display: add utility function to query VA driver name. 16357 Add gst_vaapi_display_get_vendor_string() helper function to query 16358 the underlying VA driver name. The display object owns the resulting 16359 string, so it shall not be deallocated. 16360 That function is thread-safe. It could be used for debugging purposes, 16361 for instance. 16362 163632014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16364 16365 * gst-libs/gst/vaapi/gstvaapidisplay.c: 16366 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 16367 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 16368 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 16369 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 16370 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 16371 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 16372 display: make cache maintenance really MT-safe. 16373 Make sure to initialize one GstVaapiDisplay at a time, even in threaded 16374 environments. This makes sure the display cache is also consistent 16375 during the whole display creation process. In the former implementation, 16376 there were risks that display cache got updated in another thread. 16377 163782014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16379 16380 * gst-libs/gst/vaapi/gstvaapicontext.c: 16381 context: allow dynamic growth of VA surfaces pool. 16382 Add support for dynamic growth of the VA surfaces pool. For decoding, 16383 this implies the recreation of the underlying VA context, as per the 16384 requirement from VA-API. Besides, only increases are supported, not 16385 shrinks. 16386 163872014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16388 16389 * gst-libs/gst/vaapi/gstvaapicontext.c: 16390 context: reset VA context if VA surfaces set changed. 16391 It is a requirement from VA-API specification that the VA context got 16392 from vaCreateContext(), for decoding purposes, binds the supplied set 16393 of VA surfaces. This means that if the set of VA surfaces is to be 16394 changed for the current decode session, then the VA context needs to 16395 be recreated with the new set of VA surfaces. 16396 163972014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16398 16399 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16400 decoder: h264: fix assignment of LongTermFrameIdx. 16401 Complement fix committed as e95a42e. 16402 The H.264 AVC standard has to say: if the field is part of a reference 16403 frame or a complementary reference field pair, and the other field of 16404 the same reference frame or complementary reference field pair is also 16405 marked as "used for long-term reference", the reference frame or 16406 complementary reference field pair is also marked as "used for long-term 16407 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx. 16408 This fixes decoding of MR9_BT_B in strict mode. 16409 https://bugs.freedesktop.org/show_bug.cgi?id=64624 16410 https://bugzilla.gnome.org/show_bug.cgi?id=724518 16411 164122014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16413 16414 * gst-libs/gst/vaapi/gstvaapicontext.c: 16415 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16416 * gst-libs/gst/vaapi/gstvaapiutils.c: 16417 * gst-libs/gst/vaapi/gstvaapiutils.h: 16418 decoder: h264: properly support grayscale formats. 16419 Request the correct chroma format for decoding grayscale streams. 16420 i.e. make lookups of the VA chroma format more generic, thus possibly 16421 supporting more formats in the future. 16422 This means that, if a VA driver doesn't support grayscale formats, 16423 it is now going to fail. We cannot safely assume that maybe grayscale 16424 was implemented on top of some YUV 4:2:0 with the chroma components 16425 all set to 0x80. 16426 164272014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 16428 16429 * gst-libs/gst/vaapi/gstvaapifilter.c: 16430 * gst-libs/gst/vaapi/gstvaapifilter.h: 16431 * tests/test-filter.c: 16432 build: fix source file modes. 16433 A few source files are marked executable in error - fix them 16434 https://bugzilla.gnome.org/show_bug.cgi?id=723748 16435 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 16436 164372014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 16438 16439 * configure.ac: 16440 * gst-libs/gst/vaapi/Makefile.am: 16441 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 16442 * gst/vaapi/gstvaapidecode.c: 16443 build: fix conditional compilation of VP8 decoder. 16444 https://bugzilla.gnome.org/show_bug.cgi?id=729170 16445 [added check for VASliceParameterBufferBase fields] 16446 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16447 164482014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16449 16450 * gst-libs/gst/codecparsers/Makefile.am: 16451 build: fix make dist for codecparsers. 16452 164532014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16454 16455 * ext/codecparsers: 16456 codecparsers: update to gst-vaapi-branch commit eaa3f7e. 16457 h264: fix parsing of slice groups for map type = 2 16458 164592014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16460 16461 * ext/codecparsers: 16462 codecparsers: update to gst-vaapi branch commit f44edfc. 16463 h264: fix derivation of default scaling lists 16464 164652013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com> 16466 16467 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16468 decoder: h264: fix long-term reference picture marking process. 16469 Fix reference picture marking process with memory_management_control_op 16470 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference 16471 picture, or the current picture. 16472 This fixes decoding of FRExt_MMCO4_Sony_B. 16473 https://bugs.freedesktop.org/show_bug.cgi?id=64624 16474 https://bugzilla.gnome.org/show_bug.cgi?id=724518 16475 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro] 16476 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16477 164782014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16479 16480 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16481 decoder: h264: fix initialization of RefPicLists for multiple slices. 16482 The initialization of reference picture lists (8.2.4.2) applies to all 16483 slices. So, the RefPicList0/1 lists need to be constructed prior to 16484 each slice submission to the HW decoder. 16485 This fixes decoding of video sequences where frames are encoded with 16486 multiple slices of different types, e.g. 4 slices in this order I, P, 16487 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B. 16488 https://bugzilla.gnome.org/show_bug.cgi?id=724518 16489 164902013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com> 16491 16492 * ext/codecparsers: 16493 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16494 decoder: h264: skip SPS extension and auxiliary slice NALs. 16495 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice) 16496 are present in a video, decoders shall perform the (optional) decoding 16497 process specified for these NAL units or shall ignore them (7.4.1). 16498 Implement option 2 (skip) for now, as alpha composition is not 16499 supported yet during the decoding process. 16500 This fixes decoding of the primary coded video in alphaconformanceG. 16501 https://bugzilla.gnome.org/show_bug.cgi?id=703928 16502 https://bugzilla.gnome.org/show_bug.cgi?id=728869 16503 https://bugzilla.gnome.org/show_bug.cgi?id=724518 16504 [skip NAL units earlier, i.e. at parsing time] 16505 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16506 165072013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com> 16508 16509 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16510 decoder: h264: fix slice data bit offset with MVC NAL units. 16511 When MVC slice NAL units (coded slice extension and prefix NAL) are 16512 present, the number of NAL header bytes is 3, not 1 as usual. 16513 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com> 16514 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16515 165162014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16517 16518 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16519 decoder: h264: fix activation of picture and sequence parameters. 16520 At the time the first VCL NAL unit of a primary coded picture is found, 16521 and if that NAL unit was parsed to be an SPS or PPS, then the entries 16522 in the parser may have been overriden. This means that, when the picture 16523 is to be decoded, slice_hdr->pps could point to an invalid (the next) 16524 PPS entry. 16525 So, one way to solve this problem is to not use the parser PPS and 16526 SPS info but rather maintain our own activation chain in the decoder. 16527 https://bugzilla.gnome.org/show_bug.cgi?id=724519 16528 https://bugzilla.gnome.org/show_bug.cgi?id=724518 16529 165302014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16531 16532 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16533 decoder: h264: retain SEI messages until the end of frame. 16534 Retain the SEI messages that were parsed from the access unit until we 16535 have completely decoded the current frame. This is done so that we can 16536 peek at that data whenever necessary during decoding. e.g. for exposing 16537 3D stereoscopic information at a later stage. 16538 165392014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16540 16541 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16542 decoder: h264: add support for grayscale encoded clips. 16543 Fix support for grayscale encoded video clips, and possibly others if 16544 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer 16545 the decision that a surface with the desired chroma format is not 16546 supported to the actual VA driver implementation. 16547 https://bugzilla.gnome.org/show_bug.cgi?id=728144 16548 165492014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16550 16551 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16552 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 16553 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 16554 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 16555 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 16556 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 16557 decoder: default to YUV 4:2:0 VA surfaces. 16558 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still, 16559 make sure all codecs use YUV 4:2:0 output format for now, by default. 16560 165612014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16562 16563 * gst-libs/gst/vaapi/gstvaapidecoder.c: 16564 * gst-libs/gst/vaapi/gstvaapidecoder.h: 16565 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 16566 decoder: re-indent GstVaapiDecoder base object. 16567 165682014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16569 16570 * gst-libs/gst/vaapi/gstvaapiencoder.c: 16571 encoder: derive chroma type from video format. 16572 Cope with previous VA context change to derive the correct surface chroma 16573 type from the input video format. 16574 165752014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16576 16577 * gst-libs/gst/vaapi/gstvaapicontext.c: 16578 * gst-libs/gst/vaapi/gstvaapicontext.h: 16579 context: add support for non-YUV 4:2:0 formats. 16580 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow 16581 for the upper layer to specify the desired chroma type. If the chroma 16582 type field is not set (or yields zero), then YUV 4:2:0 format is used 16583 by default. 16584 165852014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16586 16587 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 16588 vp8: fix per-segment deblocking filter level in relative mode. 16589 Fix possible bug when a per-segment deblocking filter level value 16590 needs to be set in non-absolute mode, i.e. when the loop filter update 16591 value is negative in delta mode. 16592 Also clamp the resulting filter level value to 0..63 range. 16593 165942014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16595 16596 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 16597 vp8: fix check for disabling the loop filter (again). 16598 Improve condition to disable the loop filter. The previous heuristic 16599 used to check all filter levels, for all segments. It turns out that 16600 only the base filter_level value defined in the frame header needs 16601 to be checked. 16602 This fixes 00-comprehensive-013. 16603 166042014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16605 16606 * gst-libs/gst/codecparsers/Makefile.am: 16607 * gst/vaapi/Makefile.am: 16608 build: fix make dist with certain conditionals not met. 16609 Fix generation of source tarballs when certain conditionals are not 16610 met. e.g. always include all buildable codecparsers sources in the 16611 distribution tarball, fix plug-in element sources set to include X11 16612 and encoder bits. 16613 166142014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16615 16616 * ext/Makefile.am: 16617 build: add missing files for GStreamer 0.10. 16618 Add missing GstVideoEncoder implementation files to fix build with ancient 16619 GStreamer 0.10 stack. 16620 https://bugzilla.gnome.org/show_bug.cgi?id=723964 16621 166222014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16623 16624 * ext/Makefile.am: 16625 build: add missing files for VP8 bitstream parser. 16626 Fix make dist for building the VP8 bitstream parser. 16627 166282014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16629 16630 * configure.ac: 16631 * ext/libvpx/Makefile.am: 16632 * gst-libs/gst/codecparsers/Makefile.am: 16633 vp8: allow compilation without the built-in libvpx. 16634 The built-in libvpx serves multiple purposes, among which the most 16635 important ones could be: track the most up-to-date, and optimized, 16636 range decoder; allow for future hybrid implementations (non-VLD); 16637 and have a completely independent range decoder implementation. 16638 166392014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16640 16641 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 16642 vp8: propagate PTS from demux frame. 16643 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer 16644 or parser would already have determined the PTS from a previous stage. 16645 166462014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16647 16648 * Makefile.am: 16649 * debian.upstream/libgstvaapi.install.in: 16650 * ext/libvpx/Makefile.am: 16651 * ext/libvpx/sources.frag: 16652 * gst-libs/gst/codecparsers/Makefile.am: 16653 vp8: fix compilation with built-in libvpx. 16654 Apply correct patch from fd.o #722760 to fix several issues: update the 16655 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix 16656 make dist. 16657 166582014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16659 16660 * .gitmodules: 16661 * autogen.sh: 16662 * configure.ac: 16663 * ext/Makefile.am: 16664 * ext/libvpx/Makefile.am: 16665 * ext/libvpx/gstlibvpx.c: 16666 * ext/libvpx/gstlibvpx.h: 16667 * ext/libvpx/libgstcodecparsers_vpx.vers: 16668 * ext/libvpx/sources.frag: 16669 * ext/libvpx/upstream: 16670 * gst-libs/gst/codecparsers/Makefile.am: 16671 * gst-libs/gst/codecparsers/gstvaapilibvpx.c: 16672 vp8: use range decoder from libvpx. 16673 Add libvpx submodule that tracks the upstream version 1.3.0. This is 16674 needed to build a libgstcodecparsers_vpx.so library with all symbols 16675 placed into the GSTREAMER namespace. 16676 166772014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16678 16679 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 16680 vp8: fix check for disabling the loop filter. 16681 166822013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com> 16683 16684 * configure.ac: 16685 * ext/Makefile.am: 16686 * gst-libs/gst/codecparsers/Makefile.am: 16687 * gst-libs/gst/vaapi/Makefile.am: 16688 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 16689 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 16690 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 16691 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 16692 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c: 16693 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h: 16694 * gst-libs/gst/vaapi/gstvaapiprofile.c: 16695 * gst-libs/gst/vaapi/gstvaapiprofile.h: 16696 * gst/vaapi/gstvaapidecode.c: 16697 Add initial VP8 decoder. 16698 https://bugzilla.gnome.org/show_bug.cgi?id=722761 16699 [complete overhaul, fixed support for resolution changes] 16700 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16701 167022014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16703 16704 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16705 decoder: h264: cope with new gst_h264_parser_parse_sei() interface. 16706 The gst_h264_parse_parse_sei() function now returns an array of SEI 16707 messages, instead of a single SEI message. Reason: it is allowed to 16708 have several SEI messages packed into a single SEI NAL unit, instead 16709 of multiple NAL units. 16710 167112014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16712 16713 * ext/codecparsers: 16714 codecparsers: update to gst-vaapi-branch commit a454f86. 16715 b2eb5f6 vp8: rename dboolhuff symbols 16716 b74a881 vp8: add GStreamer native utilities 16717 2940ac6 add VP8 bitstream parser 16718 167192014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16720 16721 * ext/codecparsers: 16722 codecparsers: update to gst-vaapi-branch commit d459bc5. 16723 d459bc5 h264: set framerate even for interlaced videos 16724 c78b82c h264: add support for Recovery Point SEI message 16725 7693bac h264: add support for Frame Packing Arrangement SEI message 16726 31fafa7 h264: add support for Stereo Video Information SEI message 16727 8b113a6 h264: parse seq_parameter_set_mvc_extension() 16728 040f9b8 h264: parse MVC syntax elements 16729 cc18ef3 h264: add nal_reader_skip_long() helper 16730 7e76a48 h264: fix slice_header() parsing for MVC 16731 caf46d8 h264: add gst_h264_parse_nalu_header() helper 16732 f75074e h264: add gst_h264_parse_sps_data() helper 16733 798c397 h264: clean-up gst_h264_parser_parse_sei_message() 16734 4e36737 h264: fix skipping of unsupported SEI messages 16735 5300766 h264: fix SEI buffering_period() parsing 16736 167372014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16738 16739 * ext/codecparsers: 16740 * gst-libs/gst/codecparsers/Makefile.am: 16741 codecparsers: update to gst-vaapi-branch commit 8fadf40. 16742 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing. 16743 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them 16744 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them 16745 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases 16746 8ec5816 h265: Fix segfault when parsing HRD parameter 16747 5b1730f h265: Fix segfault when parsing VPS 16748 983b7f7 h265: prevent to overrun chroma_weight_l0_flag 16749 7ba641d h265: Fix debug output 16750 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix 16751 167522014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16753 16754 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 16755 decoder: h264: fix robustness patch for bytestream format. 16756 Fix parser and decoder state to sync at the right locations. This is 16757 because we could reset the parser state, while the decoder state was 16758 not copied yet, e.g. when parsing several NAL units from multiple frames 16759 whereas the current frame was not decoded yet. 16760 This is a regression brought in by commit 6fe5496. 16761 167622014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16763 16764 * configure.ac: 16765 * pkgconfig/Makefile.am: 16766 * pkgconfig/gstreamer-vaapi-drm.pc.in: 16767 * pkgconfig/gstreamer-vaapi-glx.pc.in: 16768 * pkgconfig/gstreamer-vaapi-wayland.pc.in: 16769 * pkgconfig/gstreamer-vaapi-x11.pc.in: 16770 build: fix pkgconfig file names (again). 16771 It turns out it is more convenient to have only pkgconfig files named 16772 after the installed GStreamer API version (1.0) instead of using all 16773 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict 16774 altogether anyway, so align pkgconfig file names to that. 16775 167762014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16777 16778 * debian.upstream/libgstvaapi-dev.install.in: 16779 * gst-libs/gst/vaapi/Makefile.am: 16780 * pkgconfig/gstreamer-vaapi.pc.in: 16781 build: fix packaging for GStreamer 1.2. 16782 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use 16783 the pkgconfig version (1.0) instead of the intended API version (1.2). 16784 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict, 16785 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway. 16786 167872014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16788 16789 * configure.ac: 16790 Bump version for development. 16791 167922014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16793 16794 * debian.upstream/control.in: 16795 debian: fix trailing whitespace in description. 16796 167972014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16798 16799 * debian.upstream/control.in: 16800 * debian.upstream/copyright: 16801 debian: fix package description. 16802 Try to improve package description for the compiled plug-in elements 16803 available in there. e.g. only display vaapidownload and vaapiupload 16804 for GStreamer 0.10 builds, display vaapiencode_* elements when VA 16805 encoding is enabled, etc. 16806 Also increase the copyright notice date. 16807 168082014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16809 16810 * gst-libs/gst/vaapi/gstvaapidecoder.c: 16811 build: fix warnings on 64-bit platforms. 16812 168132014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16814 16815 * gst-libs/gst/vaapi/gstvaapicontext.c: 16816 * gst-libs/gst/vaapi/gstvaapiutils.c: 16817 build: fix for older versions of VA-API (< 0.34.0). 16818 Fix build with older versions of VA-API (< 0.34.0), or versions without 16819 good enough headers for encoding support for instance. 16820 168212014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16822 16823 * NEWS: 16824 * configure.ac: 16825 0.5.8. 16826 168272014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16828 16829 * README: 16830 README: updates. 16831 VA-API up to 0.34.0 is actually supported. Mention new video encoding 16832 support. Update copyright years, list of supported Intel HD Graphics 16833 hardware. 16834 168352014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16836 16837 * NEWS: 16838 NEWS: updates. 16839 168402014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16841 16842 * tests/test-filter.c: 16843 tests: test-filter: fix "deinterlace" option parse. 16844 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option 16845 string was provided, i.e. if it remained set to NULL. 16846 168472014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16848 16849 * gst-libs/gst/vaapi/Makefile.am: 16850 * gst-libs/gst/vaapi/gstvaapicontext.c: 16851 * gst-libs/gst/vaapi/gstvaapicontext.h: 16852 * gst-libs/gst/vaapi/gstvaapiencoder.c: 16853 * gst-libs/gst/vaapi/gstvaapiutils_core.c: 16854 * gst-libs/gst/vaapi/gstvaapiutils_core.h: 16855 libs: factor out usages of vaGetConfigAttributes(). 16856 Add gst_vaapi_get_config_attribute() helper function that takes a 16857 GstVaapiDisplay and the rest of the arguments with VA types. The aim 16858 is to have thread-safe VA helpers by default. 16859 168602014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16861 16862 * gst-libs/gst/vaapi/gstvaapiutils.c: 16863 * gst-libs/gst/vaapi/gstvaapiutils.h: 16864 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 16865 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 16866 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 16867 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 16868 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 16869 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: 16870 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: 16871 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 16872 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 16873 libs: re-indent all source code related to VA utilities. 16874 168752014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16876 16877 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h: 16878 libs: add missing file (libgstvaapi_priv_check.h). 16879 168802014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16881 16882 * gst-libs/gst/vaapi/gstvaapicontext.c: 16883 * gst-libs/gst/vaapi/gstvaapicontext.h: 16884 * gst-libs/gst/vaapi/gstvaapiencoder.c: 16885 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16886 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 16887 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 16888 encoder: notify the encoder of the submitted packed headers. 16889 Make sure to configure the encoder with the set of packed headers we 16890 intend to generate and submit. i.e. make selection of packed headers 16891 to submit more robust. 16892 168932014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16894 16895 * gst-libs/gst/vaapi/gstvaapiencoder.c: 16896 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 16897 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 16898 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 16899 encoder: fix and factor out check for supported rate-control modes. 16900 Cache the first compatible GstVaapiProfile found if the encoder is not 16901 configured yet. Next, factor out the code to check for the supported 16902 rate-control modes by moving out vaGetConfigAttributes() to a separate 16903 function, while also making sure that the attribute type is actually 16904 supported by the encoder. 16905 Also fix the default set of supported rate control modes to not the 16906 "none" variant. It's totally useless to expose it at this point. 16907 169082014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16909 16910 * gst-libs/gst/vaapi/gstvaapicontext.c: 16911 * gst-libs/gst/vaapi/gstvaapicontext.h: 16912 * gst-libs/gst/vaapi/gstvaapiencoder.c: 16913 context: move rate-control mode to encoder specific config. 16914 Move usage-specific config out of the common GstVaapiContextInfo. 16915 Create a specialized config for encoding and move rate-control mode 16916 to there. 16917 169182014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16919 16920 * gst-libs/gst/vaapi/gstvaapicontext.c: 16921 * gst-libs/gst/vaapi/gstvaapicontext.h: 16922 * gst-libs/gst/vaapi/gstvaapidecoder.c: 16923 * gst-libs/gst/vaapi/gstvaapiencoder.c: 16924 context: introduce concept of usage. 16925 Introduce GstVaapiContextUsage so that to explicitly determine the 16926 usage of a VA context. This is useful in view to simplifying the 16927 creation of VA context for VPP too. 16928 169292014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16930 16931 * gst-libs/gst/vaapi/gstvaapicontext.c: 16932 context: fix get_attribute() value result. 16933 Unknown attributes, or attributes that are not supported for the given 16934 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED. 16935 So, return failure in this case. 16936 169372014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16938 16939 * gst-libs/gst/vaapi/Makefile.am: 16940 * gst-libs/gst/vaapi/gstvaapicontext.c: 16941 * gst-libs/gst/vaapi/gstvaapicontext.h: 16942 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c: 16943 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h: 16944 * gst-libs/gst/vaapi/gstvaapisurface.c: 16945 context: move overlay composition to separate files. 16946 Move GstVideoOverlayComposition handling to separate source files. 16947 This helps keeing GstVaapiContext core implementation to the bare 16948 minimal, i.e. simpy helpers to create a VA context and handle pool 16949 of associated VA surfaces. 16950 169512014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16952 16953 * gst-libs/gst/vaapi/gstvaapicontext.c: 16954 * gst-libs/gst/vaapi/gstvaapicontext.h: 16955 * gst-libs/gst/vaapi/gstvaapidecoder.c: 16956 * gst-libs/gst/vaapi/gstvaapiencoder.c: 16957 context: clean-ups. Strip down APIs. 16958 Improve documentation and debug messages. Clean-up APIs, i.e. strip 16959 them down to the minimal set of interfaces. They are private, so no 16960 need expose getters for instance. 16961 169622014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16963 16964 * gst-libs/gst/vaapi/gstvaapicontext.c: 16965 * gst-libs/gst/vaapi/gstvaapicontext.h: 16966 context: re-indent all GstVaapiContext related source code. 16967 169682014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16969 16970 * gst-libs/gst/vaapi/Makefile.am: 16971 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 16972 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 16973 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 16974 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 16975 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 16976 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: 16977 * gst-libs/gst/vaapi/gstvaapiutils.h: 16978 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 16979 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 16980 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: 16981 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 16982 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 16983 libs: check that private headers remain private. 16984 Make sure that libgstvaapi private headers remain internally used to 16985 build libgstvaapi libraries only. All header dependencies were reviewed 16986 and checks for IN_LIBGSTVAAPI definition were added accordingly. 16987 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep 16988 consistency. 16989 169902014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 16991 16992 * configure.ac: 16993 Bump library major version. 16994 Bump the library major version due to API/ABI changes that occurred in 16995 the imaging API. In particular, GstVaapiDisplay interfaces no longer 16996 expose any GstCaps but provide GArray based ones e.g. to determine the 16997 set of supported decode/encode profiles. 16998 169992014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17000 17001 * gst-libs/gst/vaapi/glibcompat.h: 17002 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 17003 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 17004 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: 17005 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h: 17006 * gst-libs/gst/vaapi/gstvaapicontext.c: 17007 * gst-libs/gst/vaapi/gstvaapicontext.h: 17008 * gst-libs/gst/vaapi/gstvaapidecoder.c: 17009 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 17010 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 17011 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 17012 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 17013 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17014 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17015 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17016 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17017 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17018 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 17019 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 17020 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 17021 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 17022 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17023 * gst-libs/gst/vaapi/gstvaapifilter.c: 17024 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: 17025 * gst-libs/gst/vaapi/gstvaapisurface.c: 17026 * gst-libs/gst/vaapi/gstvaapisurface.h: 17027 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 17028 * gst-libs/gst/vaapi/gstvaapitypes.h: 17029 * gst-libs/gst/vaapi/gstvaapiutils.c: 17030 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 17031 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 17032 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 17033 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c: 17034 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: 17035 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: 17036 * gst-libs/gst/vaapi/gstvaapivalue.c: 17037 * gst-libs/gst/vaapi/gstvaapivalue.h: 17038 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 17039 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 17040 * gst/vaapi/gstvaapidecode.c: 17041 * gst/vaapi/gstvaapiencode.c: 17042 * gst/vaapi/gstvaapiencode.h: 17043 * gst/vaapi/gstvaapiencode_h264.c: 17044 * gst/vaapi/gstvaapiencode_h264.h: 17045 * gst/vaapi/gstvaapiencode_mpeg2.c: 17046 * gst/vaapi/gstvaapiencode_mpeg2.h: 17047 * gst/vaapi/gstvaapipluginbase.c: 17048 * gst/vaapi/gstvaapipluginutil.c: 17049 * gst/vaapi/gstvaapipluginutil.h: 17050 * gst/vaapi/gstvaapipostproc.c: 17051 * gst/vaapi/gstvaapipostproc.h: 17052 * gst/vaapi/gstvaapisink.c: 17053 * gst/vaapi/gstvaapisink.h: 17054 * gst/vaapi/gstvaapivideometa_texture.c: 17055 * tests/simple-decoder.c: 17056 legal: update copyright notice dates. 17057 170582014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17059 17060 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17061 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17062 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17063 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17064 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17065 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 17066 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 17067 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 17068 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 17069 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17070 * gst/vaapi/gstvaapiencode.c: 17071 * gst/vaapi/gstvaapiencode.h: 17072 * gst/vaapi/gstvaapiencode_h264.c: 17073 * gst/vaapi/gstvaapiencode_h264.h: 17074 * gst/vaapi/gstvaapiencode_mpeg2.c: 17075 * gst/vaapi/gstvaapiencode_mpeg2.h: 17076 legal: add per-file authorship information. 17077 170782014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17079 17080 * gst-libs/gst/vaapi/gstvaapidecoder.c: 17081 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 17082 decoder: fix video codec frame number in standalone mode. 17083 Set a valid GstVideoCodecFrame.system_frame_number when decoding a 17084 stream in standalone mode. While we are at it, improve the debugging 17085 messages to also include that frame number. 17086 170872014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com> 17088 17089 * gst-libs/gst/vaapi/gstvaapidecoder.c: 17090 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 17091 decoder: fix crash on invalid pointer for GST_DEBUG(). 17092 When decoding failed, or that the frame was dropped, the associated 17093 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG() 17094 message needs to check whether the proxy is actually present or not. 17095 https://bugzilla.gnome.org/show_bug.cgi?id=722403 17096 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID] 17097 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17098 170992014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17100 17101 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17102 encoder: h264: disable NAL HRD parameters for now. 17103 Don't emit NAL HRD parameters for now in the SPS headers because the 17104 SEI buffering_period() and picture_timing() messages are not handled 17105 yet. Some additional changes are necessary to get it right. 17106 https://bugzilla.gnome.org/show_bug.cgi?id=722734 17107 171082014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17109 17110 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17111 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17112 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 17113 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 17114 encoder: h264: fix default CPB buffer size. 17115 Fix default CPB buffer size to something more reasonable (1500 ms) 17116 and that still fits the level limits. This is a non configurable 17117 property for now. The initial CPB removal delay is also fixed to 17118 750 ms. 17119 https://bugzilla.gnome.org/show_bug.cgi?id=722087 17120 171212014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17122 17123 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17124 encoder: h264: fix bitrate encoding for HRD conformance. 17125 Round down the calculated, or supplied, bitrate (kbps) into a multiple 17126 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so 17127 that to have less losses in precision. Likewise, don't round up because 17128 that could be a strict constraint imposed by the user. 17129 171302014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17131 17132 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17133 encoder: h264: fix level lookup constraints wrt. bitrate. 17134 Fix the level calculation involving bitrate limits. Since we are 17135 targetting NAL HRD conformance, the check against MaxBR from the 17136 Table A-1 limits shall involve cpbBrNalFactor depending on the 17137 active profile. 17138 171392014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17140 17141 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17142 encoder: h264: submit sequence parameter only once. 17143 Submit sequence parameter buffers only once, or when the bitstream 17144 was reconfigured in a way that requires such. Always submit packed 17145 sequence parameter buffers at I-frame period, if the VA driver needs 17146 those. 17147 https://bugzilla.gnome.org/show_bug.cgi?id=722737 17148 171492014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17150 17151 * gst-libs/gst/vaapi/gstvaapicontext.c: 17152 * gst-libs/gst/vaapi/gstvaapicontext.h: 17153 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17154 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17155 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17156 encoder: h264: only submit packed headers when required. 17157 Make sure to submit the packed headers only if the underlying VA driver 17158 requires those. Currently, only handle packed sequence and picture 17159 headers. 17160 https://bugzilla.gnome.org/show_bug.cgi?id=722737 17161 171622014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17163 17164 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17165 encoder: h264: fix ip_period value in sequence parameter. 17166 The VAEncSequenceParameterBuffer.ip_period value reprents the distance 17167 between the I-frame and the next P-frame. So, this also accounts for 17168 any additional B-frame in the middle of it. 17169 This fixes rate control heuristics for certain VA drivers. 17170 https://bugzilla.gnome.org/show_bug.cgi?id=722735 17171 171722014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17173 17174 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17175 encoder: h264: fix level when bitrate is automatically computed. 17176 Fix level characterisation when the bitrate is automatically computed 17177 from the active coding tools. i.e. ensure the bitrate once the profile 17178 is completely characterized but before the level calculation process. 17179 171802014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17181 17182 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17183 encoder: h264: clean-ups. 17184 Document and rename a few functions here and there. Drop code that 17185 caps num_bframes variable in reset_properties() since they shall 17186 have been checked beforehand, during properties initialization. 17187 171882014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17189 17190 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17191 encoder: h264: clean-up bitwriter related utilities. 17192 Clean-up GstBitWriter related utility functions and simplify notations. 17193 While we are at it, also make bitstream writing more robust should an 17194 overflow occur. We could later optimize for writing headers capped to 17195 their maximum possible size by using the _unchecked() helper variants. 17196 171972014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17198 17199 * gst-libs/gst/vaapi/Makefile.am: 17200 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17201 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17202 encoder: h264: completely remove private headers. 17203 Drop private header since it was originally used to expose internals 17204 to the plugin element. The proper interface is now the properties API, 17205 thus rendering private headers totally obsolete. 17206 172072014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17208 17209 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17210 encoder: h264: fix PPS header packing with profile < high. 17211 Fix PPS header packing when profile is below High since 8x8 transform 17212 mode and scaling lists are High Profile features. 17213 172142014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17215 17216 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17217 encoder: h264: always emit VUI parameters for framerate. 17218 Always emit VUI parameters for timing_info, which includes framerate 17219 information. 17220 172212014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17222 17223 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17224 encoder: h264: really fix frame cropping rectangle calculation. 17225 Make frame cropping rectangle calculation future proof, i.e. exactly 17226 follow the specification (7-18) to (7-21), and subsampling definitions 17227 from Table 6-1. 17228 https://bugzilla.gnome.org/show_bug.cgi?id=722089 17229 https://bugzilla.gnome.org/show_bug.cgi?id=722238 17230 172312014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de> 17232 17233 * gst/vaapi/gstvaapisink.c: 17234 * gst/vaapi/gstvaapisink.h: 17235 vaapisink: set csc render flags from sinkpad caps. 17236 This maps GstVideoColorimetry information in vaapisink's sinkpad caps 17237 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not 17238 available. 17239 https://bugzilla.gnome.org/show_bug.cgi?id=722255 17240 [factored out code, added SMPTE240M, handle per-buffer flags] 17241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17242 172432012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17244 17245 * gst-libs/gst/vaapi/gstvaapisurface.h: 17246 * gst-libs/gst/vaapi/gstvaapiutils.c: 17247 * gst/vaapi/gstvaapipostproc.c: 17248 surface: rework render flags. 17249 Pack render flags per category and provide more flags into the color 17250 standard category. In particular, cover for SMPTE-240M. 17251 172522013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com> 17253 17254 * gst-libs/gst/vaapi/gstvaapifilter.c: 17255 * gst/vaapi/gstvaapipostproc.c: 17256 * gst/vaapi/gstvaapipostproc.h: 17257 vaapipostproc: add support for colorbalance filters. 17258 Add support for hue, saturation, brightness and constrat adjustments. 17259 Also fix cap info local copy to match the really expected cap subtype 17260 of interest. 17261 https://bugzilla.gnome.org/show_bug.cgi?id=720376 17262 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17263 172642013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com> 17265 17266 * gst/vaapi/gstvaapipostproc.c: 17267 vaapipostproc: fix support for "sharpen" filter. 17268 Fix copy/paste error when submitting the "sharpen" value to the 17269 GstVaapiFilter instance. 17270 https://bugzilla.gnome.org/show_bug.cgi?id=720375 17271 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17272 172732013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com> 17274 17275 * configure.ac: 17276 * pkgconfig/gstreamer-vaapi-drm.pc.in: 17277 * pkgconfig/gstreamer-vaapi-glx.pc.in: 17278 * pkgconfig/gstreamer-vaapi-wayland.pc.in: 17279 * pkgconfig/gstreamer-vaapi-x11.pc.in: 17280 * pkgconfig/gstreamer-vaapi.pc.in: 17281 pkgconfig: plugin dir should use PKG version not API version. 17282 Fix the pluginsdir and includedir variables in the generated pkgconfig 17283 (.pc) files. The location needs to be built with the PKG version in 17284 mind instead of the API version. 17285 While we are at it, also fix the PKG version for GStreamer >= 1.3. 17286 https://bugzilla.gnome.org/show_bug.cgi?id=720820 17287 [additional fixes for includedir and pkg requirements] 17288 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17289 172902014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de> 17291 17292 * gst/vaapi/gstvaapisink.c: 17293 vaapisink: fix display initialization in GstVideoOverlay implementation. 17294 When gst_vaapisink_video_overlay_set_window_handle() is called early, 17295 before the pipeline has been set to PLAYING, the display has not yet 17296 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet 17297 up-to-date. For this reason the foreign XID is not attached. 17298 Now _ensure_display() is called earlier. 17299 https://bugzilla.gnome.org/show_bug.cgi?id=722244 17300 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17301 173022013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 17303 17304 * gst/vaapi/gstvaapisink.c: 17305 vaapisink: expose the raw video formats in static caps template. 17306 Expose all raw video formats in the static caps template since the 17307 vaapisink is supporting raw data. We will get the exact set of formats 17308 supported by the driver dynamically through the _get_caps() routine. 17309 https://bugzilla.gnome.org/show_bug.cgi?id=703271 17310 https://bugzilla.gnome.org/show_bug.cgi?id=720737 17311 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17312 173132013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 17314 17315 * gst/vaapi/gstvaapidecode.c: 17316 vaapidecode: query downstream caps features like GLTextureUploadMeta. 17317 Fix vaapidecode to correctly report caps features downstream, when 17318 a custom pipeline is built manually. 17319 https://bugzilla.gnome.org/show_bug.cgi?id=719372 17320 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17321 173222013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 17323 17324 * gst/vaapi/gstvaapidecode.c: 17325 vaapidecode: add system memory caps to template caps. 17326 Since vaapidecode provides buffer that can be mapped as regular memory, 17327 those caps should be added to the template caps. That only applies to 17328 GStreamer >= 1.2. 17329 https://bugzilla.gnome.org/show_bug.cgi?id=720608 17330 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17331 173322013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com> 17333 17334 * gst/vaapi/gstvaapidecode.c: 17335 vaapidecode: fix hang on SIGINT. 17336 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when 17337 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and 17338 locked. This fixes a deadlock on state change from PAUSED to READY. 17339 https://bugzilla.gnome.org/show_bug.cgi?id=720584 17340 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17341 173422013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com> 17343 17344 * gst/vaapi/gstvaapiencode.c: 17345 vaapiencode: fix possible hang on SIGINT. 17346 vaapiencode might hang when the pipeline is stopped without any EOS, 17347 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep 17348 running and locked. This fixes a possible deadlock on state change 17349 from PAUSED to READY. 17350 https://bugzilla.gnome.org/show_bug.cgi?id=720584 17351 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17352 173532014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17354 17355 * gst/vaapi/gstvaapiencode.c: 17356 vaapiencode: fix typo in error message. 17357 Fix incomplete error message in gst_vaapiencode_push_frame(). 17358 173592014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17360 17361 * gst/vaapi/gstvaapipluginutil.c: 17362 * gst/vaapi/gstvaapipluginutil.h: 17363 plugins: add helpers to create video caps with features. 17364 Add gst_vaapi_video_format_new_template_caps_with_features() helper 17365 function to add the supplied caps feature string on GStreamer >= 1.2. 17366 Add gst_vaapi_find_preferred_caps_feature() helper function to discover 17367 the "best" caps feature to use for the supplied pad. In practice, we 17368 will always favor memory:VASurface first, then meta:GLTextureUploadMeta, 17369 and finally the system memory caps. 17370 https://bugzilla.gnome.org/show_bug.cgi?id=719372 17371 173722014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 17373 17374 * gst/vaapi/gstvaapivideometa_texture.c: 17375 plugins: don't apply overlay composition in GLTextureUpload function. 17376 The GLTextureUpload function is not in charge of doing the overlay 17377 composition if any. 17378 https://bugzilla.gnome.org/show_bug.cgi?id=721859 17379 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17380 173812014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17382 17383 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 17384 encoder: re-order submission of VA objects. 17385 Change the submission order of VA objects so that to make that process 17386 more logical. i.e. submit sequence parameter first, if any; next the 17387 packed headers associated to sequece, picture or slices; and finally 17388 the actual picture and associated slices. 17389 173902014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17391 17392 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17393 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17394 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17395 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 17396 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 17397 encoder: clean-up objects. 17398 Various clean-ups to improve consistency and readability: rename some 17399 variables, drop unused macro definitions, drop initialization of vars 17400 that are zero-initialized from the base class, drop un-necessary casts, 17401 allocate GPtrArrays with a destroy function. 17402 174032014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17404 17405 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17406 encoder: h264: fix frame cropping rectangle calculation. 17407 Fix frame cropping rectangle calculation to handle horizontal resolutions 17408 that don't match a multiple of 16 pixels, but also the vertical resolution 17409 that was incorrectly computed for progressive sequences too. 17410 https://bugzilla.gnome.org/show_bug.cgi?id=722089 17411 174122014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17413 17414 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17415 encoder: h264: improve automatic bitrate calculation. 17416 For non "Constant-QP" modes, we could provide more reasonable heuristics 17417 for the target bitrate. In general, 48 bits per macroblock with all the 17418 useful coding tools enable looks safe enough. Then, this rate is raised 17419 by +10% to +15% for each coding tool that is disabled. 17420 https://bugzilla.gnome.org/show_bug.cgi?id=719699 17421 174222014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17423 17424 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17425 encoder: h264: support "high-compression" tuning option. 17426 Add support for "high-compression" tuning option. First, determine the 17427 largest supported profile by the hardware. Next, check any target limit 17428 set by the user. Then, enable each individual coding tool based on the 17429 resulting profile_idc value to use. 17430 https://bugzilla.gnome.org/show_bug.cgi?id=719696 17431 174322014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17433 17434 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17435 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17436 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17437 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 17438 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 17439 * gst/vaapi/gstvaapiencode_h264.c: 17440 encoder: h264: allow target decoder constraints. 17441 Allow user to precise the largest profile to use for encoding due 17442 to target decoder constraints. For instance, if CABAC entropy coding 17443 mode is requested by "constrained-baseline" profile only is desired, 17444 then an error is returned during codec configuration. 17445 Also make sure that the suitable profile we derived actually matches 17446 what the HW can cope with. 17447 https://bugzilla.gnome.org/show_bug.cgi?id=719694 17448 174492014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17450 17451 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17452 encoder: h264: refine size of coded buffer. 17453 Refine the heuristic to determine the maximum size of a coded buffer 17454 to account for the exact number of slices. set_context_info() is the 17455 last step during codec reconfiguration, no additional change is done 17456 afterwards, so re-using the num_slices field here is fine. 17457 https://bugzilla.gnome.org/show_bug.cgi?id=719953 17458 174592013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com> 17460 17461 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17462 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17463 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17464 encoder: h264: expose more coding tools. 17465 Add new H.264 coding tools to improve compression: 17466 - "cabac": enable CABAC entropy coding (default: FALSE); 17467 - "dct8x8": enable spatial transform 8x8 (default: FALSE). 17468 https://bugzilla.gnome.org/show_bug.cgi?id=719693 17469 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17470 174712014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17472 17473 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17474 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17475 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17476 encoder: h264: derive profile and level from active coding tools. 17477 Automatically derive the minimum profile and level to be used for 17478 encoding, based on the activated coding tools. The encoder will 17479 be trying to generate a bitstream that has the best chances to be 17480 decoded on most platforms by default. 17481 Also change the default profile to "constrained-baseline" so that 17482 to ensure maximum compatibility when the stream is decoded. 17483 https://bugzilla.gnome.org/show_bug.cgi?id=719691 17484 174852014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17486 17487 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17488 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17489 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17490 encoder: h264: fix hardware profile lookup. 17491 Fix lookup for a suitable HW profile, as to be used by the underlying 17492 hardware, based on heuristics that lead to characterize the SW profile, 17493 i.e. the one used by the SW level encoding logic. 17494 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2) 17495 as they should respectively match the baseline and main profile. 17496 https://bugzilla.gnome.org/show_bug.cgi?id=719827 17497 174982014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17499 17500 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17501 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17502 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17503 encoder: h264: support only the byte-stream format. 17504 The libgstvaapi core encoders are meant to support raw bitstreams only. 17505 Henceforth, we are always producing a stream in "byte-stream" format. 17506 However, the "codec-data" buffer which holds SPS and PPS headers is 17507 always available. The "lengthSizeMinusOne" field is always set to 3 17508 so that in-place "byte-stream" format to "avc" format conversion could 17509 be performed. 17510 175112014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17512 17513 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17514 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17515 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17516 * gst/vaapi/gstvaapiencode_h264.c: 17517 encoder: h264: clean-ups. 17518 Various clean-ups to improve consistency and readability: rename some 17519 variables, drop unused macro definitions, drop initialization of vars 17520 that are zero-initialized from the base class, drop un-necessary casts. 17521 175222014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17523 17524 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17525 encoder: mpeg2: fix hardware profile lookup. 17526 Fix lookup for a suitable HW profile, as to be used by the underlying 17527 hardware, based on heuristics that lead to characterize the SW profile, 17528 i.e. the one used by the SW level encoding logic. 17529 175302014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17531 17532 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17533 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 17534 encoder: mpeg2: derive profile and level from active coding tools. 17535 Automatically derive the minimum profile and level to be used for 17536 encoding, based on the activated coding tools. Improve lookup for 17537 the best suitable level with the new MPEG-2 helper functions. 17538 Also change the default profile to "simple" so that to ensure maximum 17539 compatibility when the stream is decoded. 17540 https://bugzilla.gnome.org/show_bug.cgi?id=719703 17541 175422014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17543 17544 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17545 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 17546 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 17547 encoder: mpeg2: clean-ups. 17548 Various clean-ups to improve consistency and readability: drop unused 17549 macro definitions, drop initialization of vars that are zero-initialized 17550 from the base class, drop un-necessary casts. 17551 175522014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17553 17554 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17555 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17556 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17557 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17558 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17559 encoder: add tuning options API. 17560 Add encoder "tune" option to override the default behaviour that is to 17561 favor maximum decoder compatibility at the expense of lower compression 17562 ratios. 17563 Expected tuning options to be developed are: 17564 - "high-compression": improve compression, target best-in-class decoders; 17565 - "low-latency": tune for low-latency decoding; 17566 - "low-power": tune for encoding in low power / resources conditions. 17567 175682014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17569 17570 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17571 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17572 encoder: fix bitrate units to match kbps. 17573 Bitrate is expressed in kilobits per second (kbps). So, this exactly 17574 means in multiple of 1000 bits, not 1024 bits. 17575 https://bugzilla.gnome.org/show_bug.cgi?id=722086 17576 175772014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17578 17579 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17580 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 17581 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17582 encoder: clean-ups. 17583 Drop obsolete and unused macros. Add a few doc comments. Slightly 17584 improve indentation of a few leftovers. 17585 175862014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17587 17588 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17589 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17590 * gst-libs/gst/vaapi/gstvaapivalue.c: 17591 * gst-libs/gst/vaapi/gstvaapivalue.h: 17592 encoder: filter out the supported set of rate-control properties. 17593 Only expose the exact static set of supported rate-control properties 17594 to the upper layer. For instance, if the GstVaapiEncoderXXX class does 17595 only support CQP rate control, then only add it the the exposed enum 17596 type. 17597 Add helper macros and functions to build a GType for an enum subset. 17598 175992014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17600 17601 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17602 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17603 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17604 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17605 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17606 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17607 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 17608 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 17609 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17610 encoder: add keyframe period API. 17611 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the 17612 user control the maximum distance between two keyframes. This new 17613 property can only be set prior to gst_vaapi_encoder_set_codec_state(). 17614 A value of zero for "keyframe-period" gets it re-evaluated to the 17615 actual framerate during encoder reconfiguration. 17616 176172014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17618 17619 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17620 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17621 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17622 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17623 encoder: improve codec reconfiguration. 17624 Improve codec reconfiguration to be performed only through a single 17625 function. That is, remove the _set_context_info() hook as subclass 17626 should not alter the parent GstVaapiContextInfo itself. Besides, the 17627 VA context is constructed only at the final stages of reconfigure(). 17628 176292014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17630 17631 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c: 17632 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h: 17633 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17634 encoder: fix possible memory leak of coded buffer pools. 17635 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded 17636 buffer pool only if the coded buffer size actually changed. 17637 176382014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17639 17640 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17641 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17642 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17643 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17644 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17645 * gst/vaapi/gstvaapiencode.c: 17646 * gst/vaapi/gstvaapiencode.h: 17647 encoder: add video codec-state API. 17648 Add interface to communicate the encoder resolution and related info 17649 like framerate, interlaced vs. progressive, etc. This new interface 17650 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps 17651 but rather use GstVideoCodecState. 17652 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization 17653 point for codec config. This means that the encoder is reconfigured 17654 there to match the latest properties. 17655 176562014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17657 17658 * gst/vaapi/gstvaapiencode.c: 17659 vaapiencode: don't crash on NULL encoder on _finish(). 17660 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler, 17661 if it was not created in the first place. Return "not-negotiated" error 17662 since this means we did not even reach GstVideoEncoder::set_format(), 17663 where the encoder could have been created. 17664 This fixes a crash when the vaapiencode_* plug-in elements get deallocated 17665 and that we failed to negotiate either pad. 17666 https://bugzilla.gnome.org/show_bug.cgi?id=719704 17667 176682014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17669 17670 * gst/vaapi/gstvaapiencode.c: 17671 * gst/vaapi/gstvaapiencode.h: 17672 * gst/vaapi/gstvaapiencode_h264.c: 17673 vaapiencode: use more GstVaapiPluginBase facilities. 17674 Avoid duplication of pad references or query functions since they are 17675 provided through the GstVaapiPluginBase object. 17676 176772014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17678 17679 * gst/vaapi/gstvaapiencode.c: 17680 * gst/vaapi/gstvaapiencode.h: 17681 * gst/vaapi/gstvaapiencode_h264.c: 17682 * gst/vaapi/gstvaapiencode_h264.h: 17683 * gst/vaapi/gstvaapiencode_mpeg2.c: 17684 vaapiencode: fix negotiation process of output caps. 17685 The specified caps in gst_video_encoder_set_output_state() function 17686 arguments should not contain any resolution, pixel-aspect-ratio, 17687 framerate, codec-data et al. Those rather should be set through the 17688 returned GstVideoCodecState. This means that output caps creation 17689 could be delayed until before gst_video_encoder_finish_frame() is 17690 called. 17691 This greatly simplifies the GstVideoEncoder::set_format() callback 17692 by the way. 17693 176942014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17695 17696 * gst/vaapi/gstvaapiencode.c: 17697 vaapiencode: make GstVaapiEncode an abstract type. 17698 Make base GstVaapiEncode class an abstract type so that we cannot 17699 create an instance from it without going through any of the codec 17700 specific derived class. 17701 177022014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17703 17704 * gst/vaapi/gstvaapiencode.c: 17705 * gst/vaapi/gstvaapiencode.h: 17706 * gst/vaapi/gstvaapiencode_h264.c: 17707 * gst/vaapi/gstvaapiencode_mpeg2.c: 17708 vaapiencode: rename a few member functions. 17709 Rename a few member functions to make them more consistent: 17710 - alloc_encoder(): now reduced to allocate the encoder object only; 17711 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream. 17712 177132014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17714 17715 * gst/vaapi/gstvaapiencode.c: 17716 * gst/vaapi/gstvaapiencode.h: 17717 * gst/vaapi/gstvaapiencode_h264.c: 17718 * gst/vaapi/gstvaapiencode_h264.h: 17719 * gst/vaapi/gstvaapiencode_mpeg2.c: 17720 vaapiencode: update for new properties API. 17721 Update MPEG-2 and H.264 encode elements to cope with the new core 17722 libgstvaapi properties API. i.e. all configurable properties are now 17723 directly handled at the GstVaapiEncoder level. 17724 Besides, this also makes sure to not use or modify the GstVaapiEncoder 17725 private definitions directly. Private data need to remain private. 17726 https://bugzilla.gnome.org/show_bug.cgi?id=719529 17727 177282014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17729 17730 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17731 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17732 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17733 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17734 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17735 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 17736 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17737 encoder: add properties API. 17738 Add interface to communicate configurable properties to the encoder. 17739 This covers both the common ones (rate-control, bitrate), and the 17740 codec specific properties. 17741 https://bugzilla.gnome.org/show_bug.cgi?id=719529 17742 177432014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17744 17745 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17746 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17747 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17748 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17749 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17750 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 17751 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17752 * gst/vaapi/gstvaapiencode.c: 17753 * gst/vaapi/gstvaapiencode_h264.c: 17754 * gst/vaapi/gstvaapiencode_mpeg2.c: 17755 encoder: add bitrate API. 17756 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control 17757 the bitrate for encoding. Currently, changing this parameter is only 17758 valid before the first frame is encoded. Should the value be modified 17759 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is 17760 returned. 17761 https://bugzilla.gnome.org/show_bug.cgi?id=719529 17762 177632014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17764 17765 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17766 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17767 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17768 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17769 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 17770 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17771 * gst-libs/gst/vaapi/gstvaapitypes.h: 17772 * gst/vaapi/gstvaapiencode.c: 17773 * gst/vaapi/gstvaapiencode.h: 17774 * gst/vaapi/gstvaapiencode_h264.c: 17775 * gst/vaapi/gstvaapiencode_mpeg2.c: 17776 encoder: add rate control API. 17777 Add gst_vaapi_encoder_set_rate_control() interface to request a new 17778 rate control mode for encoding. Changing the rate control mode is 17779 only valid prior to encoding the very first frame. Afterwards, an 17780 error ("operation-failed") is issued. 17781 https://bugzilla.gnome.org/show_bug.cgi?id=719529 17782 177832014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17784 17785 * gst/vaapi/gstvaapiencode.c: 17786 * gst/vaapi/gstvaapiencode_h264.c: 17787 * gst/vaapi/gstvaapiencode_mpeg2.c: 17788 vaapiencode: fix indentation. 17789 177902014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17791 17792 * gst-libs/gst/vaapi/gstvaapiencoder.c: 17793 * gst-libs/gst/vaapi/gstvaapiencoder.h: 17794 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 17795 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 17796 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 17797 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 17798 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 17799 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 17800 * gst/vaapi/gstvaapiencode.h: 17801 encoder: fix indentation. 17802 178032014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17804 17805 * gst-libs/gst/vaapi/Makefile.am: 17806 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c: 17807 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h: 17808 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h: 17809 utils: add new MPEG-2 helper functions. 17810 Add various helper functions to convert profile, level, chroma formats 17811 from gstreamer-vaapi world and the MPEG-2 specification world. 17812 178132014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17814 17815 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 17816 utils: h264: don't use fatal asserts. 17817 Replace g_assert() with a g_debug() so that to not make the program 17818 abort when an unsupported value is supplied. 17819 178202014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17821 17822 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 17823 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 17824 utils: h264: add helpers for profile and level string mappings. 17825 Add profile and level helper functions to convert to/from strings. 17826 178272014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17828 17829 * gst-libs/gst/vaapi/Makefile.am: 17830 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 17831 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 17832 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 17833 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h: 17834 utils: h264: expose levels in public header. 17835 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the 17836 H.264 levels in there. The additional helper functions are meant 17837 to be private for now. 17838 178392014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17840 17841 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 17842 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 17843 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 17844 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 17845 codec: add helper macros to maintain object refcount. 17846 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that 17847 to avoid explicit casts to GstVaapiMiniObject in all caller sites. 17848 178492014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17850 17851 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 17852 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 17853 codec: re-indent decoder objects. 17854 178552014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17856 17857 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 17858 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 17859 codec: re-indent base codec objects. 17860 178612014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 17862 17863 * gst/vaapi/gstvaapipluginbase.c: 17864 plugins: do not free debug category in finalize method. 17865 Fixes a crash when multiple vaapidecode elements are finalized since 17866 the debug category is created once in the class init method. 17867 This is a regression from git commit 7e58d60. 17868 https://bugzilla.gnome.org/show_bug.cgi?id=721390 17869 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17870 178712014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17872 17873 * gst-libs/gst/vaapi/glibcompat.h: 17874 * tests/simple-decoder.c: 17875 tests: simple-decoder: don't use deprecated g_thread_create(). 17876 Use g_thread_try_new() instead of the deprecated g_thread_create() 17877 function. Provide compatibility glue for any GLib version < 2.31.2. 17878 178792014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17880 17881 * gst-libs/gst/vaapi/gstvaapidecoder.c: 17882 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: 17883 * gst-libs/gst/vaapi/gstvaapisurface.c: 17884 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 17885 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 17886 * gst/vaapi/gstvaapiencode.c: 17887 Fix printf()-like formats. 17888 Fix formts for various GST_DEBUG et al. invocations. More precisely, 17889 make size_t arguments use the %zu format specifier accordingly; force 17890 XID formats to be a 32-bit unsigned integer; and fix the format used 17891 for gst_vaapi_create_surface_with_format() error cases since we have 17892 been using strings nowadays. 17893 178942013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17895 17896 * gst-libs/gst/vaapi/video-format.c: 17897 * gst-libs/gst/vaapi/video-format.h: 17898 utils: format: drop unused helper functions. 17899 The following helper functions are no longer used, thus are removed: 17900 - gst_vaapi_video_format_from_structure() 17901 - gst_vaapi_video_format_from_caps() 17902 - gst_vaapi_video_format_to_caps() 17903 179042013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17905 17906 * gst-libs/gst/vaapi/video-format.c: 17907 * gst-libs/gst/vaapi/video-format.h: 17908 utils: re-indent GstVideoFormat related helpers. 17909 179102013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17911 17912 * gst/vaapi/gstvaapidownload.c: 17913 download: use GstVideoInfo facilities to build output caps. 17914 Use standard GstVideoInfo related functions to build the output caps, 17915 thus directly preserving additional fields as needed, instead of 17916 manually copying them over through gst_vaapi_append_surface_caps(). 17917 Also ensure that the input caps are fixated first. 17918 179192013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17920 17921 * gst/vaapi/gstvaapidownload.c: 17922 * gst/vaapi/gstvaapipluginutil.c: 17923 * gst/vaapi/gstvaapipluginutil.h: 17924 * gst/vaapi/gstvaapiuploader.c: 17925 plugins: factor out construction of template caps. 17926 Add new helper functions to build video template caps. 17927 - gst_vaapi_video_format_new_template_caps(): 17928 create GstCaps with size, frame rate and PAR to full range 17929 - gst_vaapi_video_format_new_template_caps_from_list(): 17930 try to create a "simplified" list from the supplied formats 17931 179322013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17933 17934 * gst/vaapi/gstvaapipluginutil.c: 17935 * gst/vaapi/gstvaapipluginutil.h: 17936 * gst/vaapi/gstvaapipostproc.c: 17937 plugins: factor out construction of GValue from GstVideoFormat. 17938 Add new helper functions to build GValues from GstVideoFormat: 17939 - gst_vaapi_value_set_format(): 17940 build a GValue from the supplied video format 17941 - gst_vaapi_value_set_format_list(): 17942 build a GValue list from the supplied array of video formats 17943 179442013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17945 17946 * gst/vaapi/gstvaapipluginutil.c: 17947 * gst/vaapi/gstvaapipluginutil.h: 17948 * gst/vaapi/gstvaapivideocontext.c: 17949 * gst/vaapi/gstvaapivideocontext.h: 17950 plugins: re-indent common and video context creation utils. 17951 179522013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17953 17954 * gst-libs/gst/vaapi/gstvaapidisplay.c: 17955 * gst-libs/gst/vaapi/gstvaapidisplay.h: 17956 * gst/vaapi/gstvaapidecode.c: 17957 * tests/test-display.c: 17958 display: don't use GstCaps for decode or encode profiles list. 17959 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more 17960 more convenient APIs that return an array of GstVaapiProfile instead 17961 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles(). 17962 179632013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17964 17965 * gst-libs/gst/vaapi/gstvaapidisplay.c: 17966 * gst-libs/gst/vaapi/gstvaapidisplay.h: 17967 * gst/vaapi/gstvaapidownload.c: 17968 * gst/vaapi/gstvaapiuploader.c: 17969 * tests/test-display.c: 17970 display: don't use GstCaps for image or subpicture formats list. 17971 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that 17972 returned GstCaps, with more convenient APIs that return an array of 17973 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats(). 17974 179752013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17976 17977 * gst-libs/gst/vaapi/gstvaapidisplay.c: 17978 * gst-libs/gst/vaapi/gstvaapidisplay.h: 17979 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 17980 display: allocate queried resources on-demand. 17981 Allocate the set of decoders or encoders on-demand, when they are 17982 queried. Likewise for VA display attributes, image and subpicture 17983 formats. 17984 179852013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 17986 17987 * gst-libs/gst/vaapi/gstvaapidisplay.c: 17988 * gst-libs/gst/vaapi/gstvaapidisplay.h: 17989 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 17990 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: 17991 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 17992 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 17993 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 17994 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 17995 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 17996 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 17997 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 17998 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 17999 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 18000 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 18001 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 18002 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 18003 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 18004 display: re-indent all GstVaapiDisplay related source code. 18005 180062013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18007 18008 * gst-libs/gst/vaapi/gstvaapiprofile.c: 18009 * gst-libs/gst/vaapi/gstvaapiprofile.h: 18010 utils: add helper functions to get codec or profile name. 18011 180122013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18013 18014 * gst/vaapi/gstvaapipostproc.c: 18015 * gst/vaapi/gstvaapipostproc.h: 18016 * gst/vaapi/gstvaapiuploader.c: 18017 plugins: fix permissions for certain files. 18018 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch] 18019 files. 18020 180212013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 18022 18023 * gst/vaapi/gstvaapivideometa_texture.c: 18024 plugins: implement GLTextureUploadMeta user data copy. 18025 Makes the copies of a buffer reference their own GLTextureUploadMeta 18026 user data and prevent the original buffer accessing already freed 18027 memory if its copies has been released and freed. 18028 https://bugzilla.gnome.org/show_bug.cgi?id=720336 18029 [Propagate the original meta texture to the copy too] 18030 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18031 180322013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18033 18034 * gst/vaapi/gstvaapiencode.c: 18035 * gst/vaapi/gstvaapiencode.h: 18036 * gst/vaapi/gstvaapipluginbase.c: 18037 * gst/vaapi/gstvaapipluginbase.h: 18038 * gst/vaapi/gstvaapipostproc.c: 18039 * gst/vaapi/gstvaapipostproc.h: 18040 * gst/vaapi/gstvaapisink.c: 18041 * gst/vaapi/gstvaapisink.h: 18042 plugins: factor out support for raw YUV buffers on sink pads. 18043 Factor out propose_allocation() hooks, creation of video buffer pool 18044 for the sink pad, conversion from raw YUV buffers to VA surface backed 18045 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope 18046 with the new GstVaapiPluginBase abilities. 18047 180482013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18049 18050 * gst-libs/gst/vaapi/gstcompat.h: 18051 * gst/vaapi/gstvaapidecode.c: 18052 * gst/vaapi/gstvaapidecode.h: 18053 * gst/vaapi/gstvaapidownload.c: 18054 * gst/vaapi/gstvaapipluginbase.c: 18055 * gst/vaapi/gstvaapipluginbase.h: 18056 * gst/vaapi/gstvaapipostproc.c: 18057 * gst/vaapi/gstvaapipostproc.h: 18058 * gst/vaapi/gstvaapisink.c: 18059 * gst/vaapi/gstvaapiupload.c: 18060 plugins: factor out pad caps. 18061 180622013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18063 18064 * gst/vaapi/gstvaapidecode.c: 18065 * gst/vaapi/gstvaapidownload.c: 18066 * gst/vaapi/gstvaapiencode.c: 18067 * gst/vaapi/gstvaapipluginbase.c: 18068 * gst/vaapi/gstvaapipostproc.c: 18069 * gst/vaapi/gstvaapisink.c: 18070 * gst/vaapi/gstvaapiupload.c: 18071 plugins: factor out video context sharing code. 18072 180732013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18074 18075 * gst/vaapi/gstvaapidecode.c: 18076 * gst/vaapi/gstvaapidownload.c: 18077 * gst/vaapi/gstvaapiencode.c: 18078 * gst/vaapi/gstvaapipluginbase.c: 18079 * gst/vaapi/gstvaapipluginbase.h: 18080 * gst/vaapi/gstvaapipostproc.c: 18081 * gst/vaapi/gstvaapisink.c: 18082 * gst/vaapi/gstvaapiupload.c: 18083 plugins: factor out GstImplementsInterface. 18084 180852013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18086 18087 * gst-libs/gst/vaapi/gstvaapidisplay.c: 18088 * gst-libs/gst/vaapi/gstvaapidisplay.h: 18089 * gst/vaapi/gstvaapipluginbase.c: 18090 * gst/vaapi/gstvaapipluginutil.c: 18091 plugins: check type of display obtained from neighbours. 18092 Fix display creation code to check that any display obtained from a 18093 neighbour actually has the type we expect. Note: if display type is 18094 set to "any", we can then accept any VA display type. 18095 180962013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18097 18098 * gst/vaapi/gstvaapidecode.c: 18099 * gst/vaapi/gstvaapidownload.c: 18100 * gst/vaapi/gstvaapiencode.c: 18101 * gst/vaapi/gstvaapipluginbase.c: 18102 * gst/vaapi/gstvaapipluginbase.h: 18103 * gst/vaapi/gstvaapipluginutil.c: 18104 * gst/vaapi/gstvaapipluginutil.h: 18105 * gst/vaapi/gstvaapipostproc.c: 18106 * gst/vaapi/gstvaapisink.c: 18107 * gst/vaapi/gstvaapisink.h: 18108 * gst/vaapi/gstvaapiupload.c: 18109 plugins: factor out display creation process. 18110 Move common VA display creation code to GstVaapiPluginBase, with the 18111 default display type remaining "any". Also add a "display-changed" 18112 hook so that subclasses could perform additional tasks when/if the 18113 VA display changed, due to a new display type request for instance. 18114 All plug-ins are updated to cope with the new internal APIs. 18115 181162013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18117 18118 * gst/vaapi/Makefile.am: 18119 * gst/vaapi/gstvaapidecode.c: 18120 * gst/vaapi/gstvaapidecode.h: 18121 * gst/vaapi/gstvaapidownload.c: 18122 * gst/vaapi/gstvaapidownload.h: 18123 * gst/vaapi/gstvaapiencode.c: 18124 * gst/vaapi/gstvaapiencode.h: 18125 * gst/vaapi/gstvaapipluginbase.c: 18126 * gst/vaapi/gstvaapipluginbase.h: 18127 * gst/vaapi/gstvaapipostproc.c: 18128 * gst/vaapi/gstvaapipostproc.h: 18129 * gst/vaapi/gstvaapisink.c: 18130 * gst/vaapi/gstvaapisink.h: 18131 * gst/vaapi/gstvaapiupload.c: 18132 * gst/vaapi/gstvaapiupload.h: 18133 plugins: add new base object, store display in there. 18134 Introduce a new GstVaapiPluginBase object that will contain all common 18135 data structures and perform all common tasks. First step is to have a 18136 single place to hold VA displays. 18137 While we are at it, also make sure to store and subsequently release 18138 the appropriate debug category for the subclasses. 18139 181402013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18141 18142 * gst-libs/gst/vaapi/gstvaapiobject.h: 18143 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 18144 * gst/vaapi/gstvaapivideometa_texture.c: 18145 * gst/vaapi/gstvaapivideometa_texture.h: 18146 plugins: fix GLTextureUploadMeta to work with different texture ids. 18147 The GLTextureUploadMeta implementation assumed that for each upload() 18148 sequence, the supplied texture id is always the same as the one that 18149 was previously cached into the underlying GstVaapiTexture. Cope with 18150 any texture id change the expense to recreate the underlying VA/GLX 18151 resources. 18152 https://bugzilla.gnome.org/show_bug.cgi?id=719643 18153 181542013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18155 18156 * gst/vaapi/gstvaapidecode.c: 18157 * gst/vaapi/gstvaapivideobufferpool.c: 18158 * gst/vaapi/gstvaapivideometa_texture.c: 18159 plugins: allow builds without GLX enabled for GStreamer 1.2. 18160 Don't try to build GLTextureUploadMeta related code if GLX is not 18161 enabled during GStreamer >= 1.2 builds. 18162 181632013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 18164 18165 * gst/vaapi/gstvaapidecode.c: 18166 * gst/vaapi/gstvaapivideobufferpool.c: 18167 * gst/vaapi/gstvaapivideobufferpool.h: 18168 * gst/vaapi/gstvaapivideometa_texture.c: 18169 * gst/vaapi/gstvaapivideometa_texture.h: 18170 plugins: request GLTextureUpload meta on buffers in the buffer pool. 18171 Requesting the GLTextureUpload meta on buffers in the bufferpool 18172 prevents such metas from being de-allocated when buffers are released 18173 in the sink. 18174 This is particulary useful in terms of performance when using the 18175 GLTextureUploadMeta API since the GstVaapiTexture associated with 18176 the target texture is stored in the meta. 18177 https://bugzilla.gnome.org/show_bug.cgi?id=712558 18178 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18179 181802013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18181 18182 * gst/vaapi/gstvaapivideometa_texture.c: 18183 plugins: robustify GstVideoGLTextureUploadMeta implementation. 18184 Make GstVideoGLTextureUploadMeta::upload() implementation more robust 18185 when the GstVaapiTexture associated with the supplied texture id could 18186 not be created. 18187 181882013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18189 18190 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 18191 h264: improve robustness when packets are missing. 18192 Improve robustness when some expected packets where not received yet 18193 or that were not correctly decoded. For example, don't try to decode 18194 a picture if there was no valid frame headers parsed so far. 18195 https://bugs.freedesktop.org/show_bug.cgi?id=57902 18196 181972013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18198 18199 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 18200 decoder: h264: fix decoding of BA3_SVA_C.264. 18201 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with 18202 extended profile specifications. However, the SPS header has the 18203 constraint_set1_flag syntax element set to 1. This means that, if 18204 a Main profile compliant decoder is available, then it should be 18205 able to decode this stream. 18206 This changes makes it possible to fall-back from Extended profile 18207 to Main profile if constraint_set1_flag is set to 1. 18208 https://bugzilla.gnome.org/show_bug.cgi?id=720190 18209 182102013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18211 18212 * gst-libs/gst/vaapi/gstvaapiprofile.h: 18213 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 18214 utils: h264: add more profiles. 18215 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2 18216 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and 18217 multiview profiles (H.10.1.1, H.10.1.2). 18218 Document "Constrained Baseline" and "High 10" profiles. 18219 182202013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18221 18222 * ext/codecparsers: 18223 codecparsers: update to gst-vaapi-branch commit e7d0e18. 18224 e7d0e18 h264: complete set of NAL unit types 18225 182262013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com> 18227 18228 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 18229 * gst-libs/gst/vaapi/gstvaapiprofile.c: 18230 decoder: h264: add support for constrained baseline profile. 18231 Recognize streams marked as conforming to the "Constrained Baseline 18232 Profile". If VA driver supports that as is, fine. Otherwise, fallback 18233 to baseline, main or high profile. 18234 Constrained Baseline Profile conveys coding tools that are common 18235 to baseline profile and main profile. 18236 https://bugzilla.gnome.org/show_bug.cgi?id=719947 18237 [Added fallbacks to main and high profiles] 18238 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18239 182402013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18241 18242 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 18243 decoder: h264: fix decoding of scaling lists. 18244 The GStreamer codecparser layer now parses the scaling lists in zigzag 18245 scan order, as expected, so that to match the original bitstream layout 18246 and specification. However, further convert the scaling lists into 18247 raster scan order to fit the existing practice in most VA drivers. 18248 https://bugzilla.gnome.org/show_bug.cgi?id=706406 18249 182502013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18251 18252 * ext/codecparsers: 18253 codecparsers: update to gst-vaapi-branch commit 177c73b. 18254 a7e3255 add H.265 (HEVC) bitstream parser 18255 177c73b h264: fix picture level scaling lists derivation (rule B) 18256 14733f1 h264: fix parsing of VCL HRD parameters 18257 59a0b47 h264: store quantization matrices in zig-zag order 18258 ffb6e26 h264: add helpers to convert quantization matrices 18259 c78a504 mpeg2: also initialize debug category in parse_sequence_header() 18260 719d1b0 mpeg2: turn internal consistency check into a g_assert() 18261 5241d8e all: remove some unused functions 18262 18eb312 all: fix for GST_DISABLE_GST_DEBUG 18263 963c04a all: make warnings more meaningful 18264 182652013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18266 18267 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 18268 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 18269 * gst-libs/gst/vaapi/gstvaapiutils_h264.h: 18270 utils: add helpers for H.264 levels. 18271 - gst_vaapi_utils_h264_get_level(): 18272 Returns GstVaapiLevelH264 from H.264 level_idc value 18273 - gst_vaapi_utils_h264_get_level_idc(): 18274 Returns H.264 level_idc value from GstVaapiLevelH264 18275 - gst_vaapi_utils_h264_get_level_limits(): 18276 Returns level limits as specified in Table A-1 of the H.264 standard 18277 - gst_vaapi_utils_h264_get_level_limits_table(): 18278 Returns the Table A-1 specification 18279 182802013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18281 18282 * gst-libs/gst/vaapi/gstvaapiprofile.c: 18283 * gst-libs/gst/vaapi/gstvaapiprofile.h: 18284 * gst-libs/gst/vaapi/gstvaapiutils_h264.c: 18285 utils: add new H.264 profiles. 18286 Add "Constrained Baseline Profile" and "High 10 Profile" definitions 18287 and helper functiions. 18288 182892013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18290 18291 utils: add new H.264 helper functions. 18292 * Profiles: 18293 - gst_vaapi_utils_h264_get_profile(): 18294 Returns GstVaapiProfile from H.264 profile_idc value 18295 - gst_vaapi_utils_h264_get_profile_idc(): 18296 Returns H.264 profile_idc value from GstVaapiProfile 18297 * Chroma formats: 18298 - gst_vaapi_utils_h264_get_chroma_type(): 18299 Returns GstVaapiChromaType from H.264 chroma_format_idc value 18300 - gst_vaapi_utils_h264_get_chroma_format_idc(): 18301 Returns H.264 chroma_format_idc value from GstVaapiChromaType 18302 183032013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 18304 18305 * gst-libs/gst/base/Makefile.am: 18306 * gst-libs/gst/vaapi/Makefile.am: 18307 Fix missing files in distribution tarball. 18308 https://bugzilla.gnome.org/show_bug.cgi?id=719776 18309 [Additional fixes and clean-ups] 18310 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18311 183122013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18313 18314 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18315 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18316 encoder: fix computation of max coded buffer size (again). 18317 The previous fix was only valid to express the maximum size of the 18318 macroblock layer, i.e. without any headers. Now, also account for 18319 the slice headers and top picture header, but also any other header 18320 we might stuff into the VA coded buffer, e.g. sequence headers. 18321 183222013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18323 18324 * gst-libs/gst/vaapi/gstvaapiencoder.c: 18325 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18326 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18327 encoder: fix computation of max coded buffer size. 18328 Fix coded buffer size for each codec. A generic issue was that the 18329 number of macroblocks was incorrectly computed. The second issue was 18330 specific to MPEG-2 were the max number of bits per macroblock, and 18331 as defined by the standard, was incorrectly mapped to the (lower) 18332 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit. 18333 183342013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18335 18336 * gst-libs/gst/vaapi/gstvaapiencoder.c: 18337 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18338 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18339 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 18340 encoder: simplify VA context initialization process. 18341 Change get_context_info() into a set_context_info() function that 18342 initializes common defaults into the base class, thus allowing the 18343 subclasses to specialize the context info further on. 18344 The set_context_info() hook is also the location where additional 18345 context specific data could be initialized. At this point, we are 18346 guaranteed to have valid video resolution size and framerate. i.e. 18347 gst_vaapi_encoder_set_format() was called beforehand. 18348 183492013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com> 18350 18351 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18352 encoder: fix mpeg2 compilation error. 18353 https://bugzilla.gnome.org/show_bug.cgi?id=719746 18354 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18355 183562013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18357 18358 * gst-libs/gst/vaapi/gstvaapiencoder.c: 18359 * gst-libs/gst/vaapi/gstvaapiencoder.h: 18360 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18361 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18362 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 18363 * gst/vaapi/gstvaapiencode.c: 18364 encoder: clean-ups and document public APIs. 18365 Clean public APIs up so that to better align with the decoder APIs. 18366 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only 18367 return the VA coded buffer proxy. Also provide useful documentation 18368 for the public APIs. 18369 183702013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18371 18372 * gst-libs/gst/vaapi/gstvaapiencoder.c: 18373 * gst-libs/gst/vaapi/gstvaapiencoder.h: 18374 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 18375 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects. 18376 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily 18377 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer 18378 through GstVaapiCodedBufferProxy user-data facility. 18379 Besides, use a GAsyncQueue to maintain a thread-safe queue object of 18380 coded buffers. 18381 Partial fix for the following report: 18382 https://bugzilla.gnome.org/show_bug.cgi?id=719530 18383 183842013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18385 18386 * gst-libs/gst/vaapi/gstvaapiencoder.c: 18387 * gst-libs/gst/vaapi/gstvaapiencoder.h: 18388 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18389 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18390 * gst/vaapi/gstvaapiencode.c: 18391 encoder: refactor status codes. 18392 Drop obsolete or unused status codes. Align some status codes with the 18393 decoder counterparts. 18394 183952013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18396 18397 * gst-libs/gst/vaapi/gstvaapiencoder.c: 18398 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18399 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 18400 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18401 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 18402 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 18403 encoder: fix subclassing process. 18404 Fix the GstVaapiEncoderClass parent class type. Make sure to validate 18405 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(), 18406 thus avoiding useless run-time checks. Also simplify the subclass 18407 initialization process to be less error prone. 18408 184092013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18410 18411 encoder: rework GstVaapiCodedBuffer and related proxy. 18412 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate 18413 public and private interfaces. Besides, the map/unmap APIs should not 18414 be exposed as is but appropriate accessors should be provided instead. 18415 * GstVaapiCodedBuffer: VA coded buffer abstraction 18416 - gst_vaapi_coded_buffer_get_size(): get coded buffer size. 18417 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer 18418 * GstVaapiCodedBufferPool: pool of VA coded buffer objects 18419 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of 18420 the specified max size, and bound to the supplied encoder 18421 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy 18422 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool 18423 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer 18424 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size 18425 Rationale: more optimized transfer functions might be provided in the 18426 future, thus rendering the map/unmap mechanism obsolete or sub-optimal. 18427 https://bugzilla.gnome.org/show_bug.cgi?id=719775 18428 184292013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18430 18431 * gst/vaapi/gstvaapidecode.c: 18432 * gst/vaapi/gstvaapiencode.c: 18433 * gst/vaapi/gstvaapipostproc.c: 18434 * gst/vaapi/gstvaapisink.c: 18435 plugins: fix reference leaks of VA display objects. 18436 Fix GstElement::set_context() implementation for all plug-in elements 18437 to avoid leaking an extra reference to the VA display, thus preventing 18438 correct cleanup of VA resources in GStreamer 1.2 builds. 18439 184402013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18441 18442 * gst/vaapi/gstvaapipluginutil.c: 18443 * gst/vaapi/gstvaapivideocontext.c: 18444 plugins: simplify gst_vaapi_ensure_display(). 18445 Return earlier if the creation of a VA display failed. Likewise, simplify 18446 gst_vaapi_video_context_propagate() now that we are guaranteed to have a 18447 valid VA display. 18448 184492013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18450 18451 * gst/vaapi/gstvaapivideomemory.c: 18452 plugins: fix memory leaks through GstVideoMeta maps. 18453 When GstVideoMeta maps were used, the supporting functions incorrectly 18454 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus 18455 always increasing the associated GstMemory reference count and giving 18456 zero chance to actually release that, and subsequently the VA display. 18457 184582013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18459 18460 * gst-libs/gst/vaapi/gstvaapifilter.c: 18461 * gst/vaapi/gstvaapiencode_h264.c: 18462 * gst/vaapi/gstvaapiencode_mpeg2.c: 18463 * gst/vaapi/gstvaapipostproc.c: 18464 * gst/vaapi/gstvaapisink.c: 18465 * gst/vaapi/gstvaapiuploader.c: 18466 plugins: use G_PARAM_STATIC_STRINGS. 18467 This avoids a few string copies during initialization. 18468 184692013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18470 18471 * gst/vaapi/gstvaapivideometa.c: 18472 plugins: simplify VA video meta to only reference surface proxies. 18473 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is 18474 now allocated from a surface pool. This also means that the local 18475 reference to the VA surface is also gone, as it could be extracted 18476 from the associated surface proxy. 18477 184782013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18479 18480 * gst/vaapi/gstvaapivideobuffer.c: 18481 * gst/vaapi/gstvaapivideobuffer.h: 18482 * gst/vaapi/gstvaapivideometa.c: 18483 * gst/vaapi/gstvaapivideometa.h: 18484 plugins: drop obsolete functions. 18485 Drop the following functions that are not longer used: 18486 - gst_vaapi_video_buffer_new_with_surface() 18487 - gst_vaapi_video_meta_new_with_surface() 18488 - gst_vaapi_video_meta_set_surface() 18489 - gst_vaapi_video_meta_set_surface_from_pool() 18490 184912013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18492 18493 * gst/vaapi/gstvaapivideometa.c: 18494 plugins: allow VA video meta to be allocated from surface proxy pools. 18495 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies 18496 from surface pools instead of plain VA surfaces. This is to simplify 18497 allocations now that surface proxies are created from a surface pool. 18498 184992013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18500 18501 * docs/reference/libs/libs-sections.txt: 18502 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 18503 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 18504 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 18505 surfaceproxy: add copy function. 18506 Add gst_vaapi_surface_proxy_copy() function that creates a new surface 18507 proxy with the same information from the parent proxy, except that the 18508 user-defined destroy notify function is not copied over. 18509 The underlying VA surface is pushed back to the video pool only when 18510 the last reference to the parent surface proxy is released. 18511 185122013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18513 18514 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 18515 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 18516 * gst/vaapi/gstvaapiencode.c: 18517 vaapiencode: optimize _handle_frame() to avoid extra allocation. 18518 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation, 18519 and in particular the GstVaapiEncObjUserData object. i.e. directly use 18520 the VA surface proxy from the source buffer. This also makes the user 18521 data attached to the GstVideoCodecFrame more consistent between both 18522 the decoder and encoder plug-in elements. 18523 185242013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18525 18526 * gst/vaapi/gstvaapiencode.c: 18527 vaapiencode: fix memory leaks in _push_frame() on error. 18528 Simplify gst_vaapiencode_push_frame(), while also removing the call 18529 to gst_video_encoder_negotiate() since this is implicit in _finish() 18530 if caps changed. Also fixed memory leaks that occured on error. 18531 185322013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18533 18534 * gst/vaapi/gstvaapiencode.c: 18535 * gst/vaapi/gstvaapiencode.h: 18536 * gst/vaapi/gstvaapiencode_h264.c: 18537 * gst/vaapi/gstvaapiencode_h264.h: 18538 * gst/vaapi/gstvaapiencode_mpeg2.c: 18539 vaapiencode: additional clean-ups. 18540 Constify pointers wherever possible. Drop unused variables, and use 18541 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer() 18542 to correctly report errors, especially when in-place conversion from 18543 bytestream to avcC format failed. 18544 185452013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18546 18547 * gst/vaapi/gstvaapiencode.c: 18548 * gst/vaapi/gstvaapiencode.h: 18549 * gst/vaapi/gstvaapiencode_h264.c: 18550 * gst/vaapi/gstvaapiencode_h264.h: 18551 * gst/vaapi/gstvaapiencode_mpeg2.c: 18552 * gst/vaapi/gstvaapiencode_mpeg2.h: 18553 vaapiencode: move common properties to base class. 18554 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode 18555 base class. The actual range of supported rate control modes is currently 18556 implemented as a plug-in element hook. This ought to be determined from 18557 the GstVaapiEncoder object instead, i.e. from libgstvaapi. 18558 185592013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18560 18561 * gst/vaapi/gstvaapiencode_h264.c: 18562 * gst/vaapi/gstvaapiencode_mpeg2.c: 18563 vaapiencode: fix plugin description and debug name. 18564 Align the plug-in debug category to its actual name. i.e. enable debug 18565 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix 18566 the plug-in element description to make it more consistent with other 18567 VA-API plug-ins. 18568 185692013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18570 18571 * configure.ac: 18572 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18573 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18574 * gst-libs/gst/video/Makefile.am: 18575 * gst/vaapi/gstvaapiencode.c: 18576 * gst/vaapi/gstvaapiencode.h: 18577 * gst/vaapi/gstvaapiencode_h264.c: 18578 * gst/vaapi/gstvaapiencode_mpeg2.c: 18579 vaapiencode: add initial support for GStreamer 0.10. 18580 185812013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18582 18583 * gst-libs/gst/vaapi/gstcompat.h: 18584 libs: add more GstBuffer compat glue for GStreamer 0.10. 18585 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations. 18586 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy 18587 notify function. 18588 185892013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18590 18591 * configure.ac: 18592 * gst-libs/gst/video/Makefile.am: 18593 libs: always use built-in videoutils for GStreamer 0.10. 18594 GStreamer 0.10.36 is the latest and ultimate version to be released 18595 from the GStreamer 0.10 branch. i.e. no further releases are to be 18596 made. So, we can safely enable the built-in videoutils replacement 18597 now that they are in sync with the 0.10 branch. 18598 185992013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18600 18601 * ext/videoutils: 18602 videoutils: update to master commit d4a15a5. 18603 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1 18604 86096cc videodecoder: minor cosmetic changes to align a bit more with master 18605 b4b8b52 videodecoder: allow parse function to not use all data on adapter 18606 2145495 videodecoder: warn if frame list gets long 18607 36c3753 videodecoder: Also use the object lock to protect the output_state 18608 518c93d videodecoder: fix seeking again 18609 185fb63 video: Correct usage of the base class stream lock 18610 170e944 videodecoder: Expose _negotiate function 18611 186122013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com> 18613 18614 * configure.ac: 18615 * gst-libs/gst/vaapi/Makefile.am: 18616 * tests/Makefile.am: 18617 Fix build with GStreamer >= 1.3. 18618 http://bugzilla.gnome.org/show_bug.cgi?id=715183 18619 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18620 186212013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18622 18623 * configure.ac: 18624 configure: disable encoders with GStreamer 0.10. 18625 Don't try to build video encoders for GStreamer 0.10. Support code is 18626 not there yet, and probably will never for such an ancient version. 18627 186282013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18629 18630 * gst/vaapi/gstvaapiencode.c: 18631 vaapiencode: fix error handling while allocating output buffers. 18632 Fix default GstVideoEncoder::allocate_buffer() implementation to properly 18633 unmap the coded buffer prior to returning an error. 18634 186352013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18636 18637 * gst/vaapi/gstvaapiencode.c: 18638 vaapiencode: fix error handling in _finish() hook. 18639 Fix GstVideoEncoder::finish() implementation to really return possible 18640 errors instead of GST_FLOW_OK. That is, fix check for timeout status. 18641 186422013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18643 18644 * gst/vaapi/gstvaapiencode.c: 18645 * gst/vaapi/gstvaapiencode.h: 18646 * gst/vaapi/gstvaapiencode_h264.c: 18647 * gst/vaapi/gstvaapiencode_h264.h: 18648 * gst/vaapi/gstvaapiencode_mpeg2.c: 18649 * gst/vaapi/gstvaapiencode_mpeg2.h: 18650 vaapiencode: minor clean-ups. 18651 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against 18652 the GObject type system. We are guaranteed to only deal with the same 18653 plug-in element object. 18654 186552013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18656 18657 * gst/vaapi/gstvaapiencode.c: 18658 * gst/vaapi/gstvaapiencode_h264.c: 18659 * gst/vaapi/gstvaapiencode_mpeg2.c: 18660 vaapiencode: fix support for raw YUV sink buffers. 18661 Allow vaapiencode plug-in elements to encode from raw YUV buffers. 18662 The most efficient way to do so is to let the vaapiencode elements 18663 allocate a buffer pool, and subsequently buffers from it. This means 18664 that upstream elements are expected to honour downstream pools. 18665 If upstream elements insist on providing their own allocated buffers 18666 to the vaapiencode elements, then it possibly would be more efficient 18667 to insert a vaapipostproc element before the vaapiencode element. 18668 This is because vaapipostproc currently has better support than other 18669 elements for "foreign" raw YUV buffers. 18670 186712013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18672 18673 * gst/vaapi/gstvaapiencode.c: 18674 vaapiencode: fix support for GStreamer 1.2. 18675 186762013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com> 18677 18678 * gst/vaapi/gstvaapiencode.c: 18679 * gst/vaapi/gstvaapiencode_h264.c: 18680 * gst/vaapi/gstvaapiencode_mpeg2.c: 18681 vaapiencode: initial port to GStreamer 1.2. 18682 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18683 186842013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com> 18685 18686 * gst/vaapi/Makefile.am: 18687 * gst/vaapi/gstvaapi.c: 18688 * gst/vaapi/gstvaapiencode_mpeg2.c: 18689 * gst/vaapi/gstvaapiencode_mpeg2.h: 18690 plugins: add mpeg2 encoder element. 18691 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element 18692 is called "vaapiencode_mpeg2". 18693 Valid properties: 18694 - rate-control: rate control mode (default: cqp - constant QP) 18695 - bitrate: desired bitrate in kbps (default: auto-calculated) 18696 - key-period: maximal distance between two key frames (default: 30) 18697 - max-bframes: number of B-frames between I and P (default: 2) 18698 - quantizer: constant quantizer (default: 8) 18699 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18700 187012013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com> 18702 18703 * gst/vaapi/Makefile.am: 18704 * gst/vaapi/gstvaapi.c: 18705 * gst/vaapi/gstvaapiencode_h264.c: 18706 * gst/vaapi/gstvaapiencode_h264.h: 18707 plugins: add h264 encoder element. 18708 Add GstVaapiEncodeH264 element object. The actual plug-in element 18709 is called "vaapiencode_h264". 18710 Valid properties: 18711 - rate-control: rate control mode (default: none) 18712 - bitrate: desired bitrate in kbps (default: auto-calculated) 18713 - key-period: maximal distance between two key frames (default: 30) 18714 - num-slices: number of slices per frame (default: 1) 18715 - max-bframes: number of B-frames between I and P (default: 0) 18716 - min-qp: minimal quantizer (default: 1) 18717 - init-qp: initial quantizer (default: 26) 18718 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18719 187202013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com> 18721 18722 * gst/vaapi/Makefile.am: 18723 * gst/vaapi/gstvaapiencode.c: 18724 * gst/vaapi/gstvaapiencode.h: 18725 plugins: add base encoder element. 18726 vaapiencode element is based on GstVideoEncoder APIs. 18727 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18728 187292013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com> 18730 18731 * gst-libs/gst/vaapi/Makefile.am: 18732 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c: 18733 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h: 18734 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h: 18735 encoder: add mpeg2 encoder. 18736 Add initial support for MPEG-2 encoding. I/P/B frames are supported. 18737 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18738 187392013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com> 18740 18741 * gst-libs/gst/vaapi/Makefile.am: 18742 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c: 18743 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h: 18744 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h: 18745 encoder: add h264 encoder. 18746 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18747 187482013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com> 18749 18750 * configure.ac: 18751 * gst-libs/gst/vaapi/Makefile.am: 18752 * gst-libs/gst/vaapi/gstvaapiencoder.c: 18753 * gst-libs/gst/vaapi/gstvaapiencoder.h: 18754 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c: 18755 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h: 18756 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h: 18757 Add initial infrastructure for video encoding. 18758 Add initial API for video encoding: only basic interfaces and small 18759 encoder objects are implemented so far. 18760 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18761 187622013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com> 18763 18764 * configure.ac: 18765 * gst-libs/gst/Makefile.am: 18766 * gst-libs/gst/base/Makefile.am: 18767 * gst-libs/gst/base/gstbitwriter.c: 18768 * gst-libs/gst/base/gstbitwriter.h: 18769 * gst-libs/gst/vaapi/Makefile.am: 18770 libs: add generic bitstream writer. 18771 GstBitWriter provides a bit writer that can write any number of bits 18772 to a pre-allocated memory buffer. Helper functions are also provided 18773 to write any number of bits from 8, 16, 32 and 64 bit variables. 18774 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18775 187762013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com> 18777 18778 * gst-libs/gst/vaapi/gstvaapicontext.c: 18779 * gst-libs/gst/vaapi/gstvaapicontext.h: 18780 libs: add support for rate-control to GstVaapiContext. 18781 Extend GstVaapiContextInfo structure to hold the desired rate control 18782 mode for encoding purposes. For decoding purposes, this field is not 18783 used and it is initialized to GST_VAAPI_RATECONTROL_NONE. 18784 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18785 187862013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com> 18787 18788 * gst-libs/gst/vaapi/gstvaapitypes.h: 18789 * gst-libs/gst/vaapi/gstvaapiutils.c: 18790 * gst-libs/gst/vaapi/gstvaapiutils.h: 18791 * gst-libs/gst/vaapi/gstvaapivalue.c: 18792 * gst-libs/gst/vaapi/gstvaapivalue.h: 18793 libs: add rate-control attributes. 18794 Add GstVaapiRateControl types and GType values in view to supporting 18795 rate controls for encoding. This is meant to be used for instance in 18796 GstVaapiContext. 18797 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18798 187992013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18800 18801 * configure.ac: 18802 Bump version for development. 18803 188042013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18805 18806 * gst/vaapi/Makefile.am: 18807 build: fix for Wayland headers not in standard include dirs. 18808 Fix build when Wayland headers don't live in plain system include dirs 18809 like /usr/include but rather in /usr/include/wayland for instance. 18810 Original patch written by Dominique Leuenberger <dimstar@opensuse.org> 18811 https://bugzilla.gnome.org/show_bug.cgi?id=712282 18812 188132013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com> 18814 18815 * gst-libs/gst/vaapi/Makefile.am: 18816 build: link libgstvaapi-wayland against videoutils. 18817 This library is using symbols that don't exist in GStreamer 0.10 so 18818 it needs to link to built-in implementation (libgstvaapi-videoutils). 18819 https://bugzilla.gnome.org/show_bug.cgi?id=712282 18820 Signed-off-by: Ross Burton <ross.burton@intel.com> 18821 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18822 188232013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18824 18825 * gst-libs/gst/vaapi/gstvaapifilter.c: 18826 * gst/vaapi/gstvaapipostproc.c: 18827 vaapostproc: fix memory leaks. 18828 Destroy VPP output surface pool on exit. Also avoid a possible crash 18829 in double-free situation caused by insufficiently reference counted 18830 array of formats returned during initialization. 18831 188322013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18833 18834 * gst/vaapi/gstvaapipostproc.c: 18835 * gst/vaapi/gstvaapipostproc.h: 18836 vaapipostproc: fix and optimize advanced deinterlacing mode. 18837 Fix advanced deinterlacing modes with VPP to track only up to 2 past 18838 reference buffers. This used to be 3 past reference buffers but this 18839 doesn't fit with the existing decode pipeline that only has 4 extra 18840 scratch surfaces. 18841 Also optimize references tracking to be only enabled when needed, i.e. 18842 when advanced deinterlacing mode is used. This means that we don't 18843 need to track past references for basic bob or weave deinterlacing. 18844 188452013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18846 18847 * gst/vaapi/gstvaapipostproc.c: 18848 vaapipostproc: fix "mixed" mode deinterlacing. 18849 In "mixed" interlaced streams, the buffer contains additional flags that 18850 specify whether the frame contained herein is interlaced or not. This means 18851 that we can alternatively get progressive or interlaced frames. Make sure 18852 to disable deinterlacing at the VPP level when the source buffer is no longer 18853 interlaced. 18854 188552013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18856 18857 * gst/vaapi/gstvaapipostproc.c: 18858 vaapipostproc: fix memory leaks with advanced deinterlacing. 18859 Fix memory leaks with advanced deinterlacing, i.e. when we keep track 18860 of past buffers. Completely reset the deinterlace state, thus destroying 18861 any buffer currently held, on _start(), _stop() and _destroy(). 18862 188632013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18864 18865 * README: 18866 README: updates. 18867 - GStreamer 1.2 APIs are supported ; 18868 - Video Processing (VA/VPP) features. 18869 188702013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18871 18872 * README: 18873 README: update for GStreamer >= 1.0.x and VPP features. 18874 188752013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18876 18877 * gst-libs/gst/vaapi/glibcompat.h: 18878 * gst-libs/gst/vaapi/gstvaapicontext.h: 18879 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 18880 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: 18881 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 18882 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 18883 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 18884 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 18885 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: 18886 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 18887 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 18888 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 18889 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 18890 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 18891 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 18892 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 18893 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 18894 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 18895 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 18896 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 18897 * gst-libs/gst/vaapi/gstvaapiimage.c: 18898 * gst-libs/gst/vaapi/gstvaapiimage.h: 18899 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 18900 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 18901 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 18902 * gst-libs/gst/vaapi/gstvaapiobject.c: 18903 * gst-libs/gst/vaapi/gstvaapiobject.h: 18904 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 18905 * gst-libs/gst/vaapi/gstvaapiprofile.c: 18906 * gst-libs/gst/vaapi/gstvaapisurface.h: 18907 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 18908 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 18909 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 18910 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 18911 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 18912 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 18913 * gst-libs/gst/vaapi/gstvaapitexture.c: 18914 * gst-libs/gst/vaapi/gstvaapitexture.h: 18915 * gst-libs/gst/vaapi/gstvaapitypes.h: 18916 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 18917 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 18918 * gst-libs/gst/vaapi/gstvaapivalue.c: 18919 * gst-libs/gst/vaapi/gstvaapivalue.h: 18920 * gst-libs/gst/vaapi/gstvaapivideopool.c: 18921 * gst-libs/gst/vaapi/gstvaapivideopool.h: 18922 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: 18923 * gst-libs/gst/vaapi/gstvaapiwindow.c: 18924 * gst-libs/gst/vaapi/gstvaapiwindow.h: 18925 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 18926 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: 18927 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 18928 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 18929 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 18930 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: 18931 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 18932 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 18933 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 18934 * gst/vaapi/gstvaapi.c: 18935 * gst/vaapi/gstvaapidecode.h: 18936 * gst/vaapi/gstvaapidownload.h: 18937 * gst/vaapi/gstvaapipluginutil.c: 18938 * gst/vaapi/gstvaapipluginutil.h: 18939 * gst/vaapi/gstvaapipostproc.h: 18940 * gst/vaapi/gstvaapisink.h: 18941 * gst/vaapi/gstvaapivideoconverter_glx.h: 18942 * tests/image.c: 18943 * tests/image.h: 18944 * tests/output.h: 18945 * tests/test-display.c: 18946 * tests/test-jpeg.c: 18947 * tests/test-jpeg.h: 18948 * tests/test-mpeg4.c: 18949 * tests/test-mpeg4.h: 18950 * tests/test-surfaces.c: 18951 * tests/test-windows.c: 18952 legal: update copyright notice dates. 18953 189542013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 18955 18956 * gst-libs/gst/vaapi/glibcompat.h: 18957 * gst-libs/gst/vaapi/gstcompat.h: 18958 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 18959 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 18960 * gst-libs/gst/vaapi/gstvaapicompat.h: 18961 * gst-libs/gst/vaapi/gstvaapicontext.c: 18962 * gst-libs/gst/vaapi/gstvaapicontext.h: 18963 * gst-libs/gst/vaapi/gstvaapidebug.h: 18964 * gst-libs/gst/vaapi/gstvaapidecoder.c: 18965 * gst-libs/gst/vaapi/gstvaapidecoder.h: 18966 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 18967 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 18968 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 18969 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 18970 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 18971 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: 18972 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 18973 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 18974 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 18975 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 18976 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 18977 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 18978 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 18979 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 18980 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 18981 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 18982 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 18983 * gst-libs/gst/vaapi/gstvaapidisplay.c: 18984 * gst-libs/gst/vaapi/gstvaapidisplay.h: 18985 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 18986 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: 18987 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 18988 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 18989 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 18990 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 18991 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 18992 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 18993 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 18994 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 18995 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 18996 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 18997 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 18998 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 18999 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 19000 * gst-libs/gst/vaapi/gstvaapifilter.c: 19001 * gst-libs/gst/vaapi/gstvaapifilter.h: 19002 * gst-libs/gst/vaapi/gstvaapiimage.c: 19003 * gst-libs/gst/vaapi/gstvaapiimage.h: 19004 * gst-libs/gst/vaapi/gstvaapiimage_priv.h: 19005 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 19006 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 19007 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 19008 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 19009 * gst-libs/gst/vaapi/gstvaapiobject.c: 19010 * gst-libs/gst/vaapi/gstvaapiobject.h: 19011 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 19012 * gst-libs/gst/vaapi/gstvaapiparser_frame.c: 19013 * gst-libs/gst/vaapi/gstvaapiparser_frame.h: 19014 * gst-libs/gst/vaapi/gstvaapipixmap.c: 19015 * gst-libs/gst/vaapi/gstvaapipixmap.h: 19016 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: 19017 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: 19018 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h: 19019 * gst-libs/gst/vaapi/gstvaapiprofile.c: 19020 * gst-libs/gst/vaapi/gstvaapiprofile.h: 19021 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 19022 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 19023 * gst-libs/gst/vaapi/gstvaapisurface.c: 19024 * gst-libs/gst/vaapi/gstvaapisurface.h: 19025 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 19026 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 19027 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 19028 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 19029 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 19030 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 19031 * gst-libs/gst/vaapi/gstvaapitexture.c: 19032 * gst-libs/gst/vaapi/gstvaapitexture.h: 19033 * gst-libs/gst/vaapi/gstvaapitypes.h: 19034 * gst-libs/gst/vaapi/gstvaapiutils.c: 19035 * gst-libs/gst/vaapi/gstvaapiutils.h: 19036 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 19037 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 19038 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 19039 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 19040 * gst-libs/gst/vaapi/gstvaapivalue.c: 19041 * gst-libs/gst/vaapi/gstvaapivalue.h: 19042 * gst-libs/gst/vaapi/gstvaapivideopool.c: 19043 * gst-libs/gst/vaapi/gstvaapivideopool.h: 19044 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: 19045 * gst-libs/gst/vaapi/gstvaapiwindow.c: 19046 * gst-libs/gst/vaapi/gstvaapiwindow.h: 19047 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 19048 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: 19049 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 19050 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 19051 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 19052 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 19053 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: 19054 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 19055 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 19056 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 19057 * gst-libs/gst/vaapi/gstvaapiworkarounds.h: 19058 * gst-libs/gst/vaapi/sysdeps.h: 19059 * gst-libs/gst/vaapi/video-format.c: 19060 * gst-libs/gst/vaapi/video-format.h: 19061 * gst/vaapi/gstvaapi.c: 19062 * gst/vaapi/gstvaapidecode.c: 19063 * gst/vaapi/gstvaapidecode.h: 19064 * gst/vaapi/gstvaapidownload.c: 19065 * gst/vaapi/gstvaapidownload.h: 19066 * gst/vaapi/gstvaapipluginutil.c: 19067 * gst/vaapi/gstvaapipluginutil.h: 19068 * gst/vaapi/gstvaapipostproc.c: 19069 * gst/vaapi/gstvaapipostproc.h: 19070 * gst/vaapi/gstvaapisink.c: 19071 * gst/vaapi/gstvaapisink.h: 19072 * gst/vaapi/gstvaapiupload.c: 19073 * gst/vaapi/gstvaapiupload.h: 19074 * gst/vaapi/gstvaapiuploader.c: 19075 * gst/vaapi/gstvaapiuploader.h: 19076 * gst/vaapi/gstvaapivideobuffer.c: 19077 * gst/vaapi/gstvaapivideobuffer.h: 19078 * gst/vaapi/gstvaapivideobufferpool.c: 19079 * gst/vaapi/gstvaapivideobufferpool.h: 19080 * gst/vaapi/gstvaapivideocontext.c: 19081 * gst/vaapi/gstvaapivideocontext.h: 19082 * gst/vaapi/gstvaapivideoconverter_glx.c: 19083 * gst/vaapi/gstvaapivideoconverter_glx.h: 19084 * gst/vaapi/gstvaapivideoconverter_x11.c: 19085 * gst/vaapi/gstvaapivideoconverter_x11.h: 19086 * gst/vaapi/gstvaapivideomemory.c: 19087 * gst/vaapi/gstvaapivideomemory.h: 19088 * gst/vaapi/gstvaapivideometa.c: 19089 * gst/vaapi/gstvaapivideometa.h: 19090 * gst/vaapi/gstvaapivideometa_texture.c: 19091 * gst/vaapi/gstvaapivideometa_texture.h: 19092 * tests/codec.c: 19093 * tests/codec.h: 19094 * tests/decoder.c: 19095 * tests/decoder.h: 19096 * tests/image.c: 19097 * tests/image.h: 19098 * tests/output.c: 19099 * tests/output.h: 19100 * tests/simple-decoder.c: 19101 * tests/test-decode.c: 19102 * tests/test-decode.h: 19103 * tests/test-display.c: 19104 * tests/test-filter.c: 19105 * tests/test-h264.c: 19106 * tests/test-h264.h: 19107 * tests/test-jpeg.c: 19108 * tests/test-jpeg.h: 19109 * tests/test-mpeg2.c: 19110 * tests/test-mpeg2.h: 19111 * tests/test-mpeg4.c: 19112 * tests/test-mpeg4.h: 19113 * tests/test-surfaces.c: 19114 * tests/test-textures.c: 19115 * tests/test-vc1.c: 19116 * tests/test-vc1.h: 19117 * tests/test-windows.c: 19118 legal: add per-file authorship information. 19119 Credit original authors on a per-file basis as we cannot expect people 19120 to know all country-specific rules, or bother browsing through the git 19121 history. 19122 191232013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19124 19125 * NEWS: 19126 * configure.ac: 19127 0.5.7. 19128 191292013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19130 19131 * NEWS: 19132 NEWS: updates. 19133 191342013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19135 19136 * gst-libs/gst/vaapi/gstvaapidecoder.h: 19137 decoder: don't include obsolete headers. 19138 The <gst/vaapi/gstvaapicontext.h> header was removed from the public 19139 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend 19140 on private files. 19141 191422013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19143 19144 * gst/vaapi/Makefile.am: 19145 * gst/vaapi/gstvaapi.c: 19146 * gst/vaapi/gstvaapipostproc.c: 19147 vaapipostproc: add initial support for GStreamer 1.2. 19148 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal 19149 right now so that to cope with auto-plugging issues/regressions. e.g. 19150 this happens when the correct set of expected caps are being exposed. 19151 This means that, currently, the proposed caps are not fully accurate. 19152 191532013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com> 19154 19155 * gst/vaapi/gstvaapipostproc.c: 19156 * gst/vaapi/gstvaapipostproc.h: 19157 vaapipostproc: add support for denoise and sharpen filters. 19158 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19159 191602013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19161 19162 * gst/vaapi/gstvaapipostproc.c: 19163 * gst/vaapi/gstvaapipostproc.h: 19164 vaapipostproc: add support for advanced deinterlacing. 19165 Add initial support for advanced deinterlacing. The history buffer 19166 size is arbitrarily set to 3 references for now. 19167 191682013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19169 19170 * gst/vaapi/gstvaapipostproc.c: 19171 vaapipostproc: fix deinterlacing with VPP. 19172 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing() 19173 for the first field. Render flags were supplied instead of the actual 19174 deinterlacing flags (deint_flags). 19175 191762013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19177 19178 * gst/vaapi/gstvaapipostproc.c: 19179 vaapipostproc: fix transform caps. 19180 Fix GstBaseTransform::transform_caps() implementation to always return 19181 the complete set of allowed sink pad caps (unfixated) even if the src 19182 pad caps we are getting are fixated. Rationale: there are just so many 19183 possible combinations, and it was wrong to provide a unique set anyway. 19184 As a side effect, this greatly simplifies the ability to derive src pad 19185 caps from fixated sink pad caps. 19186 191872013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com> 19188 19189 * docs/reference/libs/libs-sections.txt: 19190 * gst-libs/gst/vaapi/gstvaapifilter.c: 19191 * gst-libs/gst/vaapi/gstvaapifilter.h: 19192 filter: add helper to specify references for deinterlacing. 19193 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the 19194 list of surfaces used for forward or backward reference in advanced 19195 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated. 19196 The list of surfaces used as deinterlacing references shall be live 19197 until the next call to gst_vaapi_filter_process(). 19198 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19199 192002013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19201 19202 * gst-libs/gst/vaapi/gstvaapifilter.c: 19203 * gst-libs/gst/vaapi/gstvaapifilter.h: 19204 * gst-libs/gst/vaapi/gstvaapiutils.c: 19205 * gst/vaapi/gstvaapipostproc.c: 19206 * tests/test-filter.c: 19207 filter: fix semantics of deinterlacing flags. 19208 Fix deinterlacing flags to make more sense. The TFF (top-field-first) 19209 flag is meant to specify the organization of reference frames used in 19210 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD 19211 to specify that the top-field of the supplied input surface is to be 19212 used for deinterlacing. Conversely, if not set, this means that the 19213 bottom field of the supplied input surface will be used instead. 19214 192152013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19216 19217 * docs/reference/libs/libs-sections.txt: 19218 * gst-libs/gst/vaapi/gstvaapifilter.c: 19219 * gst-libs/gst/vaapi/gstvaapifilter.h: 19220 filter: add helpers to check for supported/active operation. 19221 Add a couple of helper functions: 19222 - gst_vaapi_filter_has_operation(): checks whether the VA driver 19223 advertises support for the supplied operation ; 19224 - gst_vaapi_filter_use_operation(): checks whether the supplied 19225 operation was already enabled to its non-default value. 19226 192272013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19228 19229 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 19230 libs: fix GstVaapiSurfaceProxy destroy notify call site. 19231 The user-defined destroy notify function is meant to be called only when 19232 the surface proxy was fully released, i.e. once it actually released the 19233 VA surface back to the underlying pool. 19234 192352013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com> 19236 19237 * gst-libs/gst/vaapi/gstvaapivideopool.c: 19238 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: 19239 libs: make GstVaapiVideoPool thread-safe. 19240 https://bugzilla.gnome.org/show_bug.cgi?id=707108 19241 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19242 192432013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com> 19244 19245 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 19246 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 19247 libs: robustify decoder objects and surface proxy initialization. 19248 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization 19249 sequences to have the expected default values set beforehand in case of an 19250 error raising up further during creation. i.e. make it possible to cleanly 19251 destroy those partially initialized objects. 19252 https://bugzilla.gnome.org/show_bug.cgi?id=707108 19253 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19254 192552013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19256 19257 * gst/vaapi/gstvaapidecode.c: 19258 vaapidecode: fix decoder flush. 19259 There are situations where gst_video_decoder_flush() is called, and 19260 this subsequently produces a gst_video_decoder_reset() that kills the 19261 currently active GstVideoCodecFrame. This means that it no longer 19262 exists by the time we reach GstVideoDecoder::finish() callback, thus 19263 possibly resulting in a crash if we assumed spare data was still 19264 available for decode (current_frame_size > 0). 19265 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0 19266 that means a flush, thus performing the actual operations there like 19267 calling gst_video_decoder_have_frame() if pending data is available. 19268 192692013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19270 19271 * gst/vaapi/gstvaapidecode.c: 19272 * gst/vaapi/gstvaapidecode.h: 19273 vaapidecode: fix dead-locks with decoder task. 19274 Review all interactions between the main video decoder stream thread 19275 and the decode task to derive a correct sequence of operations for 19276 decoding. Also avoid extra atomic operations that become implicit under 19277 the GstVideoDecoder stream lock. 19278 192792013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com> 19280 19281 * gst/vaapi/gstvaapidecode.c: 19282 vaapidecode: fix hard reset for seek cases. 19283 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue 19284 and completely purge any decoded output frame that may come out from 19285 it. At this stage, the GstVaapiDecoder shall be in a complete clean 19286 state to start decoding over new buffers. 19287 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19288 192892013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com> 19290 19291 * gst/vaapi/gstvaapidecode.c: 19292 * gst/vaapi/gstvaapidecode.h: 19293 vaapidecode: drop decode timeout, always wait for a free surface. 19294 vaapidecode used to wait up to one second past the expected time of 19295 presentation for the last decoded frame. This is not realistic in 19296 practice when it comes to video pause/resume. Changed behaviour to 19297 unconditionnally wait for a free VA surface prior to continuing the 19298 decoding. The decode task will continue pushing the output frames to 19299 the downstream element while also reporting errors at the same time 19300 to the main thread. 19301 https://bugzilla.gnome.org/show_bug.cgi?id=707108 19302 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19303 193042013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19305 19306 * gst/vaapi/gstvaapidecode.c: 19307 vaapidecode: fix srcpad caps for GStreamer 1.2. 19308 The srcpad caps exposed for GStreamer 1.2 were missing any useful info 19309 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention 19310 that it relied on possibly un-initialized data. Fix srcpad caps to be 19311 initialized from a sanitized copy of GstVideoDecoder output state caps. 19312 Note: the correct way to expose the srcpad caps triggers an additional 19313 issue in core GStreamer auto-plugging capabilities as the correct caps 19314 to be exposed should be format=ENCODED with memory:VASurface caps feature 19315 at the minimum. In some situations, we could determine the underlying 19316 VA surface format, but this is not always possible. e.g. cases where it 19317 is not allowed to expose the underlying VA surface data, or when the 19318 VA driver implementation cannot actually provide such information. 19319 193202013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19321 19322 * gst/vaapi/gstvaapidecode.c: 19323 * gst/vaapi/gstvaapisink.c: 19324 plugins: streamline VA formats exposed in caps to a realistic set. 19325 Currently, the decoder only supports YUV 4:2:0 output. So, expose the 19326 output formats for GStreamer 1.2 in caps to a realistic subset. This 19327 means NV12, I420 or YV12 but also ENCODED if we cannot determine the 19328 underlying VA surface format, or if it is actually not allowed to get 19329 access to the surface contents. 19330 193312013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19332 19333 * gst/vaapi/gstvaapidecode.c: 19334 * gst/vaapi/gstvaapisink.c: 19335 plugins: expose the expected format for GstVideoGLTextureUploadMeta. 19336 Fix vaapidecode srcpad caps to only expose RGBA video format for the 19337 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported 19338 so far. Besides, drop this meta from the vaapisink sinkpad caps since 19339 we really don't support that for rendering. 19340 https://bugzilla.gnome.org/show_bug.cgi?id=711828 19341 193422013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19343 19344 * configure.ac: 19345 configure: automatically detect GStreamer API version. 19346 Automatically detect GStreamer API version. The --with-gstreamer-api 19347 configure option now defaults to "autodetect" and configure then tries 19348 to derive the GStreamer API version from the highest version based on 19349 what pkg-config --modversion would report. 19350 https://bugzilla.gnome.org/show_bug.cgi?id=711657 19351 193522013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com> 19353 19354 * gst/vaapi/gstvaapipostproc.c: 19355 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0. 19356 Fix raw YUV data uploaded as in the following pipeline: 19357 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink 19358 The main reason why it failed was that the videoparse element simply 19359 allocates GstBuffer with raw data chunk'ed off the sink pad without 19360 any prior knowledge of the actual frame info. i.e. it basically just 19361 calls gst_adapter_take_buffer(). 19362 We could avoid the extra copy performed in vaapipostproc if the videoparse 19363 element was aware of the downstream pool and bothers copying line by 19364 line, for each plane. This means that, for a single frame per buffer, 19365 the optimizatin will be to allocate the video buffer downstream, map 19366 it, and copy each line that is coming through until we need to fills 19367 in the successive planes. 19368 Still, optimized raw YUV uploads already worked with the following: 19369 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink 19370 https://bugzilla.gnome.org/show_bug.cgi?id=711250 19371 [clean-ups, fixed error cases to unmap and unref outbuf] 19372 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19373 193742013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19375 19376 * gst/vaapi/gstvaapipostproc.c: 19377 vaapipostproc: try to downgrade deinterlace-method when needed. 19378 If the currently selected deinterlacing method is not supported by the 19379 underlying hardware, then try to downgrade the method to a supported one. 19380 At the minimum, basic bob-deinterlacing shall always be supported. 19381 193822013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19383 19384 * gst/vaapi/gstvaapipostproc.c: 19385 vaapipostproc: add initial support for deinterlacing with VPP. 19386 Allow basic bob-deinterlacing to work when VPP is enabled. Currently, 19387 this only covers bob-deinterlacing when the output pixel format is 19388 explicitly set. 19389 193902013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19391 19392 * gst/vaapi/gstvaapipostproc.c: 19393 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10. 19394 The size argument for GstBaseTransform::transform_size() hook is a 19395 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs. 19396 193972013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19398 19399 * gst/vaapi/gstvaapipostproc.c: 19400 * gst/vaapi/gstvaapipostproc.h: 19401 vaapipostproc: add initial support for scaling. 19402 Add initial support for basic scaling with size specified through the 19403 "width" and "height" properties. If either user-provided dimension is 19404 zero and "force-aspect-ratio" is set to true (the default), then the 19405 other dimension is scaled to preserve the aspect ratio. 19406 194072013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19408 19409 * gst/vaapi/gstvaapipostproc.c: 19410 * gst/vaapi/gstvaapipostproc.h: 19411 vaapipostproc: add initial support for color conversion. 19412 If VPP is available, we always try to implicitly convert the source 19413 buffer to the "native" surface format for the underlying accelerator. 19414 This means that no optimization is performed yet to propagate raw YUV 19415 buffers to the downstream element as is, if VPP is available. i.e. it 19416 will always cause a color conversion. 19417 194182013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19419 19420 * gst/vaapi/gstvaapipostproc.c: 19421 vaapipostproc: fix bug when user disabled deinterlacing. 19422 Fix pipeline error / hang when the user disabled deinterlacing through 19423 the deinterlace-mode=disabled property setting. 19424 194252013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19426 19427 * gst/vaapi/gstvaapipostproc.c: 19428 * gst/vaapi/gstvaapipostproc.h: 19429 vaapipostproc: factor out operations to be applied into flags. 19430 Even if we only support deinterlacing for now, use flags to specify 19431 which filters are to be applied to each frame we receive in transform(). 19432 This is preparatory work for integrating new filters. 19433 194342013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19435 19436 * gst/vaapi/gstvaapipostproc.c: 19437 * gst/vaapi/gstvaapipostproc.h: 19438 vaapipostproc: add support for raw YUV video source buffers. 19439 Allow video processing from raw YUV buffers coming from the sink pad, 19440 while still producing a VA surface for the downstream elements. 19441 194422013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19443 19444 * gst/vaapi/gstvaapipluginutil.c: 19445 * gst/vaapi/gstvaapipluginutil.h: 19446 * gst/vaapi/gstvaapipostproc.c: 19447 vaapipostproc: add support for "mixed" interlace mode. 19448 Add support for "mixed" interlace-mode, whereby the video frame buffer 19449 shall be deinterlaced only if its flags mention that's actually an 19450 interlaced frame buffer. 19451 194522013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19453 19454 * gst-libs/gst/vaapi/gstcompat.h: 19455 * gst/vaapi/gstvaapipostproc.c: 19456 * gst/vaapi/gstvaapipostproc.h: 19457 * gst/vaapi/gstvaapivideobuffer.c: 19458 * gst/vaapi/gstvaapivideobuffer.h: 19459 vaapipostproc: rework plug-in element. 19460 Rewrite the vaapipostproc plug-in element so that it derives from 19461 GstBaseTransform, thus simplifying the caps negotiation process. 19462 194632013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19464 19465 * gst/vaapi/gstvaapivideobufferpool.c: 19466 * gst/vaapi/gstvaapivideomemory.c: 19467 * gst/vaapi/gstvaapivideomemory.h: 19468 plugins: fix and optimize check for buffer pool allocator params. 19469 Reset the buffer pool allocator only if the config caps changed in a 19470 sensible way: format or resolution change. i.e. don't bother with 19471 other caps like colorimetry et al. as this doesn't affect the way to 19472 allocate VA surfaces or images. 19473 194742013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19475 19476 * gst/vaapi/gstvaapivideomemory.c: 19477 plugins: enable memory maps for read & write with direct-rendering. 19478 Enable read and write mappings only if direct-rendering is supported. 19479 Otherwise, this means that we may need to download data from the VA 19480 surface first for correctness, even if the VA surface doesn't need to 19481 be read at all. i.e. sometimes, READWRITE mappings are meant for 19482 surfaces that are written to first, and read afterwards for further 19483 processing. 19484 https://bugzilla.gnome.org/show_bug.cgi?id=704078 19485 194862013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19487 19488 * gst/vaapi/gstvaapivideomemory.c: 19489 plugins: fix check for direct-rendering support. 19490 Fix check for direct-rendering if the creation of VA surfaces with 19491 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and 19492 that we tried to allocate a VA surface based on the corresponding 19493 chroma type. i.e. in that particular case, we have to make sure that 19494 the derived image has actually the expected format. 19495 194962013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19497 19498 * gst/vaapi/gstvaapivideobufferpool.c: 19499 * gst/vaapi/gstvaapivideomemory.c: 19500 * gst/vaapi/gstvaapivideomemory.h: 19501 plugins: fix buffer pool reset_buffer() to reset memory resources. 19502 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying 19503 memory resources, and more particularly the VA surface proxy. Most 19504 importantly, the GstVaapiVideoMeta is retained. Cached surface in 19505 memory are released, thus triggering a new allocation the next time 19506 we need to map the buffer. 19507 195082013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19509 19510 * gst/vaapi/gstvaapivideomemory.c: 19511 * gst/vaapi/gstvaapivideomemory.h: 19512 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies. 19513 Make sure GstVaapiVideoMemory allocates VA surface proxies from a 19514 pool stored in the parent VA memory allocator. 19515 This fixes the following scenario: 19516 - VA video buffer 1 is allocated from a buffer pool 19517 - Another video buffer is created, and inherits info from buffer 1 19518 - Buffer 1 is released, thus pushing it back to the buffer pool 19519 - New buffer alloc request comes it, this yields buffer 1 back 19520 - At this stage, buffers 1 and 2 still share the same underlying VA 19521 surface, but buffer 2 was already submitted downstream for further 19522 processing, thus conflicting with additional processing we were 19523 about to perform on buffer 1. 19524 Maybe the core GstBufferPool implementation should have been fixed 19525 instead to actually make sure that the returned GstBuffer memory we 19526 found from the pool is writable? 19527 195282013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19529 19530 * gst/vaapi/gstvaapiuploader.c: 19531 plugins: create a proxy for GstVaapiUploader allocated buffers. 19532 Always make sure to allocate a VA surface proxy for GstVaapiUploader 19533 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate 19534 a proxy surface. 19535 This fixes cases where we want to retain the underlying surface longer, 19536 instead of releasing it back to the surface pool right away. 19537 195382013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19539 19540 * gst/vaapi/gstvaapidecode.c: 19541 * gst/vaapi/gstvaapipluginutil.c: 19542 * gst/vaapi/gstvaapipluginutil.h: 19543 * gst/vaapi/gstvaapipostproc.c: 19544 plugins: add helper function to disable deinterlacing in caps. 19545 Add gst_caps_set_interlaced() helper function that would reset the 19546 interlace-mode field to "progressive" for GStreamer >= 1.0, or the 19547 interlaced field to "false" for GStreamer 0.10. 19548 195492013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19550 19551 * gst-libs/gst/vaapi/gstvaapifilter.c: 19552 filter: fix memory leak of VPP operations. 19553 Fix ensure_operations() to release the VPP operations array if non 19554 NULL, prior to returning to the caller. The former function was also 19555 renamed to a more meaningful get_operations() since the caller owns 19556 the returned array that needs to be released. 19557 195582013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com> 19559 19560 * gst-libs/gst/vaapi/gstvaapifilter.c: 19561 filter: fix first-time operation lookup. 19562 Fix first-time operation lookup through find_operation() if the set 19563 of supported operations was not initially determined through the 19564 gst_vaapi_filter_get_operations() helper function. 19565 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19566 195672013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com> 19568 19569 * gst-libs/gst/vaapi/gstvaapifilter.c: 19570 filter: fix colorbalance related subtypes. 19571 Fix intiialization of GstVaapiFilterOpData for colorbalance related 19572 operations. In particular, fill in the va_subtype field accordingly. 19573 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19574 195752013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19576 19577 * gst-libs/gst/vaapi/gstvaapifilter.c: 19578 filter: fix VA-API 0.34.0 symbol guards. 19579 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols 19580 that need to be guarded for libva 0.34 and 0.33, respectively. 19581 https://bugzilla.gnome.org/show_bug.cgi?id=709102 19582 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19583 195842013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19585 19586 * gst/vaapi/gstvaapidecode.c: 19587 * gst/vaapi/gstvaapipluginutil.c: 19588 * gst/vaapi/gstvaapisink.c: 19589 plugins: hanle the context query in any pad. 19590 Also this patch simplifies the code, since now the query is common for the 19591 decoder and the sink. 19592 https://bugzilla.gnome.org/show_bug.cgi?id=709200 19593 195942013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19595 19596 * gst/vaapi/gstvaapivideocontext.c: 19597 plugins: query upstream element for a GstContext. 19598 Fix gst_vaapi_video_context_prepare() to also query upstream elements 19599 for a valid GstContext. Improve comments regarding the steps used to 19600 lookup or build that context, thus conforming to the GstContext API 19601 recommendations. 19602 https://bugzilla.gnome.org/show_bug.cgi?id=709112 19603 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19604 196052013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19606 19607 * configure.ac: 19608 * debian.upstream/control.in: 19609 Fix detection and packaging of GStreamer 1.2.x builds. 19610 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x 19611 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging 19612 purposes, update the versioning to -1.2 suffix instead. 19613 196142013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19615 19616 * gst/vaapi/Makefile.am: 19617 * gst/vaapi/gstvaapidecode.c: 19618 * gst/vaapi/gstvaapidecode.h: 19619 * gst/vaapi/gstvaapisink.c: 19620 * gst/vaapi/gstvaapivideometa_texture.c: 19621 * gst/vaapi/gstvaapivideometa_texture.h: 19622 plugins: add support for GstVideoGLTextureUploadMeta. 19623 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is 19624 requested, and more specifically under a GLX configuration, then add 19625 the GstVideoGLTextureUploadMeta to the output buffer. 19626 https://bugzilla.gnome.org/show_bug.cgi?id=703236 19627 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19628 196292013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 19630 19631 * gst/vaapi/gstvaapidecode.c: 19632 * gst/vaapi/gstvaapisink.c: 19633 * gst/vaapi/gstvaapivideomemory.h: 19634 plugins: add support for GstCaps features. 19635 Move VA video buffer memory from "video/x-surface,type=vaapi" format, 19636 as expressed in caps, to the more standard use of caps features. i.e. 19637 add "memory:VASurface" feature attribute to the associated caps. 19638 https://bugzilla.gnome.org/show_bug.cgi?id=703271 19639 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19640 196412013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19642 19643 * gst/vaapi/gstvaapidecode.c: 19644 * gst/vaapi/gstvaapisink.c: 19645 plugins: improve ::query() debugging messages. 19646 Fix gst_vaapidecode_query() to correctly display the query type name, 19647 instead of randomly displaying that we shared the underlying display. 19648 Also add debug info for the GstVaapiSink::query() handler, i.e. the 19649 supplied query type name actually. 19650 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19651 196522013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19653 19654 * gst/vaapi/gstvaapidecode.c: 19655 * gst/vaapi/gstvaapisink.c: 19656 plugins: add support for GstContext API. 19657 Add support for the new GstContext API from GStreamer 1.2.x. 19658 - implement the GstElement::set_context() hook ; 19659 - reply to the `context' query from downstream elements. 19660 https://bugzilla.gnome.org/show_bug.cgi?id=703235 19661 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19662 196632013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19664 19665 * gst/vaapi/Makefile.am: 19666 * gst/vaapi/gstvaapipluginutil.c: 19667 * gst/vaapi/gstvaapivideocontext.c: 19668 * gst/vaapi/gstvaapivideocontext.h: 19669 plugins: add compat layer for GstVideoContext. 19670 Add thin compatibility layer for the deprecated GstVideoContext API. 19671 For GStreamer API >= 1.2, this involves the following two functions: 19672 - gst_vaapi_video_context_prepare(): queries if a context is already 19673 set in the pipeline ; 19674 - gst_vaapi_video_context_propagate(): propagates the newly-created 19675 context to the rest of the pipeline. 19676 https://bugzilla.gnome.org/show_bug.cgi?id=703235 19677 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19678 196792013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 19680 19681 * configure.ac: 19682 * gst/vaapi/Makefile.am: 19683 * gst/vaapi/gstvaapi.c: 19684 * gst/vaapi/gstvaapidecode.c: 19685 * gst/vaapi/gstvaapipluginutil.c: 19686 * gst/vaapi/gstvaapisink.c: 19687 * gst/vaapi/gstvaapivideobuffer.c: 19688 plugins: initial port to GStreamer 1.2. 19689 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This 19690 is rather minimalistic so that to test the basic functionality. 19691 Disable vaapipostproc plugin for now as further polishing is needed. 19692 Also disable GstVideoContext interface support since this API is now 19693 gone in 1.2.x. This is preparatory work for GstContext support. 19694 https://bugzilla.gnome.org/show_bug.cgi?id=703235 19695 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19696 196972013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19698 19699 * tests/simple-decoder.c: 19700 tests: simple-decoder: fix for non-X11 backends. 19701 Don't try to create pixmaps if we have not requested that feature. This 19702 fixes execution for non-X11 backends, and most specifically DRM video 19703 output mode. 19704 197052013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19706 19707 * ext/codecparsers: 19708 codecparsers: update to gst-vaapi-branch commit b33bd32. 19709 b33bd32 jpeg: fix and optimize scan for next marker code 19710 197112013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19712 19713 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19714 jpeg: fix calculation of MCU count. 19715 Fix calculation of MCU count for image sizes that are not a multiple 19716 of 8 pixels in either dimension, but also for non-common sampling 19717 factors like 4:2:2 in non-interleaved mode. 19718 197192013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19720 19721 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19722 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 19723 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 19724 jpeg: add support for multiscan images. 19725 Add support for images with multiple scans per frame. The Huffman table 19726 can be updated before SOS, and thus possibly requiring multiple uploads 19727 of Huffman tables to the VA driver. So, the latter must be able to cope 19728 with multiple VA buffers of type 'huffman-table' and with the correct 19729 sequential order. 19730 197312013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19732 19733 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19734 jpeg: improve robustness when packets are missing. 19735 Improve robustness when some expected packets where not received yet 19736 or that were not correctly decoded. For example, don't try to decode 19737 a picture if there was no valid frame headers. 19738 197392013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19740 19741 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19742 jpeg: minor clean-ups. 19743 Improve debugging and error messages. Rename a few variables to fit the 19744 existing naming conventions. Change some fatal asserts to non-fatal 19745 error codes. 19746 197472013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19748 19749 * gst-libs/gst/vaapi/gstvaapidecoder.c: 19750 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19751 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 19752 jpeg: rework and optimize parser. 19753 Split the input buffer data into decoder units that represent a JPEG 19754 segment. Handle scan decoder unit specifically so that it can include 19755 both the scan header (SOS) but also any other ECS or RSTi segment. 19756 That way, we parse the input buffer stream only once at the gst-vaapi 19757 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the 19758 stream into frames SOI .. EOI and (ii) in decode_buffer() to further 19759 determine segment boundaries and decode them. 19760 In practice, this is a +15 to +25% performance improvement. 19761 197622013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com> 19763 19764 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19765 jpeg: handle comment segments. 19766 Fix decode_buffer() function to gracefully skip comment (COM) segments. 19767 This fixes decoding of streams generated by certain cameras, e.g. like 19768 the Logitech Pro C920. 19769 https://bugzilla.gnome.org/show_bug.cgi?id=708208 19770 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com> 19771 197722013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19773 19774 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19775 jpeg: fix determination of image bounds. 19776 Look for the exact image bounds characterised by the <SOI> and <EOI> 19777 markers. Use the gst_jpeg_parse() codec parser utility function to 19778 optimize the lookup for the next marker segment. 19779 https://bugzilla.gnome.org/show_bug.cgi?id=707447 19780 197812013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com> 19782 19783 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19784 jpeg: fix calculation of offset to next marker segment. 19785 Fix calculation of the offset to the next marker segment since the 19786 correction of the codecparser part to match the API specification. 19787 i.e. the GstJpegMarkerSegment.size field represents the size in bytes 19788 of the segment minus any marker prefix. 19789 https://bugzilla.gnome.org/show_bug.cgi?id=707447 19790 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com> 19791 197922013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19793 19794 * ext/codecparsers: 19795 codecparsers: update to gst-vaapi-branch commit 23c7dde. 19796 23c7dde jpeg: fix calculation of segment size 19797 197982013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19799 19800 * configure.ac: 19801 Bump version for development. 19802 198032013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19804 19805 * NEWS: 19806 * configure.ac: 19807 0.5.6. 19808 198092013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19810 19811 * NEWS: 19812 NEWS: updates. 19813 198142013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com> 19815 19816 * configure.ac: 19817 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 19818 configure: fix detection of VA/JPEG decoding API. 19819 Fix detection of VA/JPEG decoding API with non-standard libva packages. 19820 More precisely, some packages were shipping with a <va/va.h> header that 19821 did not include <va/va_dec_jpeg.h>. 19822 https://bugzilla.gnome.org/show_bug.cgi?id=706055 19823 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19824 198252013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com> 19826 19827 * gst/vaapi/gstvaapisink.c: 19828 vaapisink: ensure the uploader is setup for upstream allocated buffers. 19829 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper 19830 is setup in case upstream elements allocate buffers themselves without 19831 honouring our GstVaapiSink::bufer_alloc() hook. 19832 In particular, this fixes support for OGG video streams with WebKit. 19833 https://bugzilla.gnome.org/show_bug.cgi?id=703934 19834 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19835 198362013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19837 19838 * gst/vaapi/gstvaapisink.c: 19839 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds. 19840 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10 19841 builds as well. 19842 198432013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19844 19845 * gst/vaapi/gstvaapisink.c: 19846 * gst/vaapi/gstvaapisink.h: 19847 vaapisink: handle raw buffers not created from VA video buffer pool. 19848 Handle raw video buffers that were not created from a VA video buffer 19849 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x 19850 builds instead of the GstVaapiUploader. 19851 https://bugs.freedesktop.org/show_bug.cgi?id=55818 19852 198532013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19854 19855 * gst/vaapi/gstvaapidecode.c: 19856 vaapidecode: remove extraneous size information from allowed caps. 19857 Fix _getcaps() implementation to not report codecs with size information 19858 filled in the returned caps. That's totally useless nowadays. Ideally, 19859 this is a hint to insert a video parser element, thus allowing future 19860 optimizations, but this is not a strict requirement for gstreamer-vaapi, 19861 which is able to parse the elementary bitstreams itself. 19862 https://bugzilla.gnome.org/show_bug.cgi?id=704734 19863 198642013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com> 19865 19866 * gst/vaapi/gstvaapidecode.c: 19867 * gst/vaapi/gstvaapidecode.h: 19868 vaapidecode: submit the last frame from output adapter to decoder. 19869 If there is no frame delimiter at the end of the stream, e.g. no 19870 end-of-stream or end-of-sequence marker, and that the current frame 19871 was fully parsed correctly, then assume that last frame is complete 19872 and submit it to the decoder. 19873 https://bugzilla.gnome.org/show_bug.cgi?id=705123 19874 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com> 19875 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19876 198772013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19878 19879 * gst/vaapi/gstvaapidecode.c: 19880 * gst/vaapi/gstvaapidecode.h: 19881 vaapidecode: push all decoded frames from within the task. 19882 Make sure to push all decoded frames from the task so that the unlying 19883 VA surfaces could all be rendered from the same thread. 19884 198852013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19886 19887 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 19888 wayland: render the raw surface if VPP failed. 19889 As a last resort, if video processing capabilities (VPP) are not available, 19890 or they did not produce anything conclusive enough, then try to fallback to 19891 the original rendering code path whereby the whole VA surface is rendered 19892 as is, no matter of video cropping or deinterlacing requests. 19893 Note: under those conditions, the visual outcome won't be correct but at 19894 least, something gets displayed instead of bailing out. 19895 198962013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19897 19898 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 19899 wayland: add supporting for video processing. 19900 Try to use VA/VPP processing capabilities to handle video cropping and 19901 additional rendering flags that may not be directly supported by the 19902 underlying hardware when exposing a suitable Wayland buffer for the 19903 supplied VA surface. e.g. deinterlacing, different color primaries than 19904 BT.601, etc. 19905 199062013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19907 19908 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 19909 wayland: add new frame redraw infrastructure. 19910 Update the frame redraw infrastructure with a new FrameState stucture 19911 holds all the necessary information used to display the next pending 19912 surface. 19913 While we are at it, delay the sync operation down to when it is actually 19914 needed. That way, we keep performing additional tasks meanwhile. 19915 199162013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19917 19918 * docs/reference/libs/libs-sections.txt: 19919 * gst-libs/gst/vaapi/gstvaapifilter.c: 19920 * gst-libs/gst/vaapi/gstvaapifilter.h: 19921 filter: allow specification of render target regions. 19922 Add support for rendering the source surface to a particular region within 19923 the supplied target surface. The default background color is black. 19924 199252013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19926 19927 * gst/vaapi/gstvaapivideobuffer.c: 19928 decode: fix creation of GLX video buffers for GStreamer 0.10. 19929 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real; 19930 and (ii) to correctly extract the GstSurfaceConverter from the video buffer 19931 object meta. 19932 This fixes support for cluttersink with GStreamer 0.10 builds. 19933 199342013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19935 19936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 19937 mpeg2: disable video cropping as picture_display_extension() is missing. 19938 Disable video cropping in MPEG-2 codec because it is partially implemented 19939 and actually because nobody implements it that way, and the standard spec 19940 does not specify the display process either anyway. 19941 Most notably, there are two possible use cases for sequence_display_extension() 19942 horizontal_display_size & vertical_display_size: (i) guesstimating the 19943 pixel-aspect-ratio, or (ii) implement some kind of span & scan process 19944 in conjunction with picture_display_extension() information. 19945 https://bugzilla.gnome.org/show_bug.cgi?id=704848 19946 199472013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 19948 19949 * gst/vaapi/gstvaapisink.c: 19950 * gst/vaapi/gstvaapisink.h: 19951 vaapisink: allow scaling to ignore aspect ratio. 19952 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property, 19953 which allows you to say that you don't want the sink to respect aspect 19954 ratio. Add the same property to vaapisink. 19955 http://lists.freedesktop.org/archives/libva/2012-September/001298.html 19956 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk> 19957 199582013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com> 19959 19960 * gst/vaapi/gstvaapisink.c: 19961 vaapisink: fix memory leak of GstVaapiUploader instance. 19962 Make sure gst_vaapisink_ensure_uploader() checks for the existence 19963 of a former GstVaapiUploader instance prior to forcibly creating a 19964 new one. 19965 https://bugzilla.gnome.org/show_bug.cgi?id=703980 19966 199672013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com> 19968 19969 * gst/vaapi/gstvaapisink.c: 19970 vaapisink: fix get_caps() implementation for GStreamer 1.0. 19971 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds 19972 by honouring the filter caps argument. More precisely, this fixes the 19973 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink 19974 https://bugzilla.gnome.org/show_bug.cgi?id=705192 19975 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com> 19976 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19977 199782013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19979 19980 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 19981 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class. 19982 This fixes the following issue: 19983 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo 19984 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef 19985 'GstVaapiDecoderMpeg4Class' 19986 gstvaapidecoder_mpeg4.c:44: note: previous declaration of 19987 'GstVaapiDecoderMpeg4Class' was here 19988 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1 19989 make[5]: Leaving directory 19990 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi' 19991 https://bugzilla.gnome.org/show_bug.cgi?id=705148 19992 199932013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 19994 19995 * tests/test-filter.c: 19996 tests: filter: add support for deinterlacing. 19997 Add --deinterlace option to enable deinterlacing through explicit VA/VPP 19998 deinterlacing filter. However, if --deinterlace option is not set but the 19999 --deinterlace-flags option is set with "top-field-first", then the very 20000 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags. 20001 200022013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com> 20003 20004 * tests/test-filter.c: 20005 tests: filter: add support for denoising and sharpening. 20006 Add --denoise option to enable noise reduction with the level specified 20007 as the option value (float). Likewise, add --sharpen option to enable 20008 sharpening. 20009 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20010 200112013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20012 20013 * tests/test-filter.c: 20014 tests: filter: add support for frame cropping. 20015 Add support for frame cropping through the --crop-rect|-c argument. 20016 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ; 20017 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>. 20018 200192013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20020 20021 * tests/test-filter.c: 20022 tests: filter: dump supported operations and formats. 20023 200242013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com> 20025 20026 * tests/Makefile.am: 20027 * tests/test-filter.c: 20028 tests: add initial test for video processing. 20029 Add minimal test case for video processing: scaling and color format 20030 conversion. 20031 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20032 200332013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com> 20034 20035 * docs/reference/libs/libs-sections.txt: 20036 * gst-libs/gst/vaapi/gstvaapifilter.c: 20037 * gst-libs/gst/vaapi/gstvaapifilter.h: 20038 * gst-libs/gst/vaapi/gstvaapiutils.c: 20039 * gst-libs/gst/vaapi/gstvaapiutils.h: 20040 * gst/vaapi/gstvaapipostproc.c: 20041 * gst/vaapi/gstvaapipostproc.h: 20042 filter: add initial support for deinterlacing. 20043 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only 20044 the selected field from the input surface is kept for the target surface. 20045 Setting gst_vaapi_filter_set_deinterlacing() method argument to 20046 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing. 20047 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in 20048 to libgstvaapi core library. 20049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20050 200512013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com> 20052 20053 * docs/reference/libs/libs-sections.txt: 20054 * gst-libs/gst/vaapi/gstvaapifilter.c: 20055 * gst-libs/gst/vaapi/gstvaapifilter.h: 20056 filter: add support for color balance adjustment. 20057 Add ProcAmp (color balance) adjustments for hue, saturation, brightness 20058 and contrast. The respective range for each filter shall be the same as 20059 for the VA display attributes. 20060 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20061 200622013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com> 20063 20064 * docs/reference/libs/libs-sections.txt: 20065 * gst-libs/gst/vaapi/gstvaapifilter.c: 20066 * gst-libs/gst/vaapi/gstvaapifilter.h: 20067 filter: add support for sharpening. 20068 Sharpening is configured with a float value. The supported range is 20069 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening 20070 operation at all. 20071 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20072 200732013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com> 20074 20075 * docs/reference/libs/libs-sections.txt: 20076 * gst-libs/gst/vaapi/gstvaapifilter.c: 20077 * gst-libs/gst/vaapi/gstvaapifilter.h: 20078 filter: add support for denoising. 20079 Noise reduction is configured with a float value. The supported range 20080 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise 20081 operation at all. 20082 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20083 200842013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20085 20086 * docs/reference/libs/libs-sections.txt: 20087 * gst-libs/gst/vaapi/gstvaapifilter.c: 20088 * gst-libs/gst/vaapi/gstvaapifilter.h: 20089 filter: add support for frame cropping. 20090 Frame cropping is defined with a GstVaapiRectangle value. The default 20091 behaviour is to treat the source surface as a whole 20092 200932013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20094 20095 * gst-libs/gst/vaapi/gstvaapifilter.c: 20096 filter: add helper functions. 20097 Add helper functions to ensure an operation VA buffer is allocated to 20098 the right size; that filter caps get parsed and assigned to the right 20099 operation too; and that float parameters are correctly scaled to fit 20100 the reported range from the VA driver. 20101 201022013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20103 20104 * configure.ac: 20105 * docs/reference/libs/libs-docs.xml.in: 20106 * docs/reference/libs/libs-sections.txt: 20107 * gst-libs/gst/vaapi/Makefile.am: 20108 * gst-libs/gst/vaapi/gstvaapidisplay.c: 20109 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 20110 * gst-libs/gst/vaapi/gstvaapifilter.c: 20111 * gst-libs/gst/vaapi/gstvaapifilter.h: 20112 Add initial infrastructure for video processing. 20113 Add initial API for video processing: only scaling and color format 20114 conversion operations are supported. 20115 201162013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20117 20118 * gst-libs/gst/vaapi/video-format.c: 20119 * gst-libs/gst/vaapi/video-format.h: 20120 libs: add gst_vaapi_video_format_from_string() helper. 20121 Add gst_vaapi_video_format_from_string() helper function to convert from 20122 a video format string representation to a suitable GstVideoFormat. This 20123 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x 20124 builds, and a proper iteration over all GstVideoFormat string representations 20125 otherwise for earlier GStreamer 0.10.x builds. 20126 201272013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20128 20129 * gst-libs/gst/vaapi/video-format.c: 20130 * gst-libs/gst/vaapi/video-format.h: 20131 libs: add gst_vaapi_video_format_from_va_fourcc() helper. 20132 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a 20133 VA fourcc value to a suitable GstVideoFormat. 20134 201352013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20136 20137 * gst-libs/gst/vaapi/gstvaapivalue.c: 20138 * gst-libs/gst/vaapi/gstvaapivalue.h: 20139 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle. 20140 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle 20141 structures as a standard GType. This could be useful to have them 20142 described as a GValue later on. 20143 201442013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20145 20146 * docs/reference/libs/libs-docs.xml.in: 20147 * docs/reference/libs/libs-sections.txt: 20148 * gst-libs/gst/vaapi/Makefile.am: 20149 * gst-libs/gst/vaapi/gstvaapicontext.h: 20150 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 20151 libs: drop some public APIs. 20152 Don't expose GstVaapiContext APIs and make them totally private to 20153 libgstvaapi core library. That API would also tend to disappear in 20154 a future revision. Likewise, don't expose GstVaapiDisplayCache API 20155 but keep symbols visible so that the various render backends could 20156 share a common display cache implementation in libgstvaapi. 20157 Try to clean-up the documentation from any stale entry too. 20158 201592013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20160 20161 * tests/image.c: 20162 * tests/image.h: 20163 tests: image: allow creation of images with interleaved patterns. 20164 Add image_generate_full() function to create interleaved color rectangles. 20165 If flags is zero, the whole frame is generated with a unique pattern. If 20166 flags is non-zero, then each field is handled individually. 20167 201682013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20169 20170 * tests/image.c: 20171 tests: image: fix conversion from RGB to YUV. 20172 Fix RGB to YUV conversion to preserve full data range. 20173 201742013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20175 20176 * tests/image.c: 20177 tests: image: try to upload images through vaDeriveImage() too. 20178 On some platforms, vaPutImage() would fail even if it does not involve 20179 color format conversion or scaling, whereas copying raw pixels through 20180 vaDeriveImage() could work instead. 20181 201822013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20183 20184 * tests/image.c: 20185 tests: image: add support for packed YUV formats. 20186 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY. 20187 201882013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20189 20190 * tests/image.c: 20191 tests: image: fix generation of I420/YV12 images. 20192 U/V planes were reversed, thus producing invalid images. 20193 201942013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20195 20196 * tests/image.c: 20197 tests: image: fix string representation for GstVideoFormat. 20198 201992013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20200 20201 * docs/reference/libs/libs-sections.txt: 20202 * gst-libs/gst/vaapi/Makefile.am: 20203 * gst-libs/gst/vaapi/gstvaapiimage.c: 20204 * gst-libs/gst/vaapi/gstvaapiimage.h: 20205 * gst-libs/gst/vaapi/gstvaapiimage_priv.h: 20206 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 20207 * gst-libs/gst/vaapi/gstvaapisurface.c: 20208 image: clean image API up. 20209 Don't expose functions that reference a GstVaapiImageRaw, those are 20210 meant to be internal only for implementing subpictures sync. Also add 20211 a few private definitions to avoid functions calls for retrieving 20212 image size and format information. 20213 202142013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20215 20216 * docs/reference/libs/libs-sections.txt: 20217 * gst-libs/gst/vaapi/gstvaapiimage.c: 20218 * gst-libs/gst/vaapi/gstvaapiimage.h: 20219 image: add gst_vaapi_image_copy() helper. 20220 Add gst_vaapi_image_copy() helper function to copy images of same format 20221 and size. 20222 202232013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20224 20225 * gst/vaapi/gstvaapivideoconverter_x11.c: 20226 plugins: handle video cropping in X11 pixmap converter. 20227 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle 20228 we could decode from the stream. 20229 202302013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20231 20232 * gst/vaapi/Makefile.am: 20233 * gst/vaapi/gstvaapivideobuffer.c: 20234 * gst/vaapi/gstvaapivideoconverter_glx.c: 20235 * gst/vaapi/gstvaapivideoconverter_x11.c: 20236 * gst/vaapi/gstvaapivideoconverter_x11.h: 20237 plugins: add support for "x11-pixmap" video converter type. 20238 Install a new video converter that supports X11 pixmap targets for X11 20239 backends only, or make the GLX converter creation function chain up to 20240 the X11 converter whenever requested. 20241 202422013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20243 20244 * tests/simple-decoder.c: 20245 tests: simple-decoder: add support for pixmap API. 20246 Add support for the new render-to-pixmap API. Avoid flickering on 20247 platforms supporting video overlay by keeping up to 2 intermediate 20248 pixmaps. 20249 202502013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20251 20252 * tests/simple-decoder.c: 20253 tests: simple-decoder: add support for video cropping. 20254 Handle video cropping information attached to a VA surface proxy. 20255 202562013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20257 20258 * tests/output.c: 20259 * tests/output.h: 20260 * tests/test-decode.c: 20261 tests: add support for render-to-pixmap. 20262 Add --pixmap option to test-decode so that to allow copies of VA 20263 surface to an intermediate pixmap and rendering from that pixmap. 20264 Only X11 backends are supported for now. 20265 202662013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20267 20268 * configure.ac: 20269 * gst-libs/gst/vaapi/Makefile.am: 20270 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 20271 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 20272 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 20273 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 20274 x11: implement pixmap rendering with RENDER extension. 20275 Use hardware accelerated XRenderComposite() function, from the RENDER 20276 extension, to blit a pixmap to screen. Besides, this can also support 20277 cropping and scaling. 20278 202792013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20280 20281 * docs/reference/libs/libs-docs.xml.in: 20282 * docs/reference/libs/libs-sections.txt: 20283 * gst-libs/gst/vaapi/Makefile.am: 20284 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 20285 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 20286 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c: 20287 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h: 20288 x11: implement pixmap API. 20289 Implement the new render-to-pixmap API. The only supported pixmap format 20290 that will work is xRGB, with native byte ordering. Others might work but 20291 they were not tested. 20292 202932013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20294 20295 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 20296 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 20297 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 20298 x11: update x11_get_geometry() helper function with depth output. 20299 Allow x11_get_geometry() utility function to also return the depth 20300 assigned to the X drawable. 20301 203022013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20303 20304 * docs/reference/libs/libs-docs.xml.in: 20305 * docs/reference/libs/libs-sections.txt: 20306 * gst-libs/gst/vaapi/Makefile.am: 20307 * gst-libs/gst/vaapi/gstvaapipixmap.c: 20308 * gst-libs/gst/vaapi/gstvaapipixmap.h: 20309 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h: 20310 * gst-libs/gst/vaapi/gstvaapiwindow.c: 20311 * gst-libs/gst/vaapi/gstvaapiwindow.h: 20312 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 20313 Add initial Pixmap API. 20314 Add API to transfer VA urfaces to native pixmaps. Also add an API to 20315 render a native pixmap, for completeness. In general, rendering to 20316 pixmap would only be useful to certain VA drivers and use cases on 20317 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled 20318 in an upper layer. 20319 203202013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20321 20322 * docs/reference/libs/libs-sections.txt: 20323 * gst-libs/gst/vaapi/gstvaapiimage.c: 20324 * gst-libs/gst/vaapi/gstvaapisurface.c: 20325 * gst-libs/gst/vaapi/video-format.c: 20326 * gst-libs/gst/vaapi/video-format.h: 20327 libs: add and expose gst_vaapi_video_format_to_string() helper. 20328 This is just a wrapper over gst_video_format_to_string() for older 20329 GStreamer 0.10 builds. 20330 203312013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar> 20332 20333 * gst/vaapi/gstvaapipluginutil.c: 20334 plugins: fix display type comparison in gst_vaapi_create_display(). 20335 After the code got moved to create the gst_vaapi_create_display() helper, 20336 this comparison was not updated to dereference the newly-created 20337 pointer, so the code was comparing the pointer itself to the type, and 20338 therefore failing to retrieve the VA display. 20339 This fixes the following error (and gets gst-vaapi decoding again): 20340 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display 20341 https://bugzilla.gnome.org/show_bug.cgi?id=704410 20342 Signed-off-by: Emilio López <emilio@elopez.com.ar> 20343 203442013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20345 20346 * configure.ac: 20347 Bump version for development. 20348 203492013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20350 20351 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 20352 mpeg2: don't output dummy pictures. 20353 Mark dummy pictures as output already so that we don't try to submit 20354 them to the upper layer since this is purely internal / temporary 20355 picture for helping the decoder. 20356 203572013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20358 20359 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 20360 decoder: dispose GstVideoCodecFrame earlier. 20361 Once the picture was output, it is no longer necessary to keep an extra 20362 reference to the underlying GstVideoCodecFrame. So, we can release it 20363 earlier, and maybe subsequently release the associate surface proxy 20364 earlier. 20365 203662013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20367 20368 * NEWS: 20369 * configure.ac: 20370 0.5.5. 20371 203722013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20373 20374 * docs/reference/libs/libs-sections.txt: 20375 * gst-libs/gst/vaapi/Makefile.am: 20376 * gst-libs/gst/vaapi/gstvaapidisplay.c: 20377 * gst-libs/gst/vaapi/gstvaapiimage.c: 20378 * gst-libs/gst/vaapi/gstvaapisurface.c: 20379 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 20380 * gst-libs/gst/vaapi/video-format.c: 20381 * gst-libs/gst/vaapi/video-format.h: 20382 * gst/vaapi/gstvaapidownload.c: 20383 * gst/vaapi/gstvaapiuploader.c: 20384 * tests/image.c: 20385 * tests/test-display.c: 20386 Fix new video format API. 20387 Fix new internal video format API, based on GstVideoFormat, to not 20388 clobber with system symbols. So replace the gst_video_format_* prefix 20389 with gst_vaapi_video_format_ prefix, even if the format type remains 20390 GstVideoFormat. 20391 203922013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20393 20394 * configure.ac: 20395 Bump library major version. 20396 Bump the library major version due to API/ABI changes that occurred in 20397 the imaging API. In particular, GstVaapiImageFormat type was replaced 20398 with the standard GstVideoFormat type. All dependent APIs were updated 20399 to match this change. 20400 204012013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20402 20403 * NEWS: 20404 NEWS: updates. 20405 204062013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20407 20408 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 20409 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 20410 decoder: fix memory leak when processing interlaced pictures. 20411 Fix memory leak when processing interlaced pictures and that occurs 20412 because the first field, represented as a GstVideoCodecFrame, never 20413 gets released. i.e. when the picture is completed, this is generally 20414 the case when the second field is successfully decoded, we need to 20415 propagate the GstVideoCodecFrame of the first field to the original 20416 GstVideoDecoder so that it could reclaim memory. 20417 Otherwise, we keep accumulating the first fields into GstVideoDecoder 20418 private frames list until the end-of-stream is reached. The frames 20419 are eventually released there, but too late, i.e. too much memory 20420 may have been consumed. 20421 https://bugzilla.gnome.org/show_bug.cgi?id=701257 20422 204232013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20424 20425 * gst/vaapi/gstvaapipluginutil.c: 20426 plugins: simlpify gst_vaapi_create_display() helper. 20427 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new() 20428 performs the necessary validation checks for the underlying VA display 20429 prior to returning to the caller. So, if an error occurred, then NULL is 20430 really returned in that case. 20431 204322013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 20433 20434 * gst/vaapi/gstvaapipluginutil.c: 20435 plugins: add gst_vaapi_create_display() helper. 20436 https://bugzilla.gnome.org/show_bug.cgi?id=703235 20437 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20438 204392013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20440 20441 * gst/vaapi/gstvaapivideobufferpool.c: 20442 plugins: don't reallocate pool allocator for the same caps. 20443 If the video buffer pool config doesn't have new caps, then it's not 20444 necessary to reinstantiate the allocator. That could be a costly 20445 operation as we could do some extra heavy checking in there. 20446 204472013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20448 20449 * gst/vaapi/gstvaapivideomemory.c: 20450 plugins: fix ref counting of GstVaapiVideoMemory allocator. 20451 Fix reference counting issue whereby gst_memory_init() does not hold 20452 an extra reference to the GstAllocator. So, there could be situations 20453 where the last instance of GstVaapiVideoAllocator gets released before 20454 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash. 20455 204562013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20457 20458 * gst/vaapi/gstvaapiuploader.c: 20459 vaapiupload: use implicit color conversion to NV12. 20460 Always perform conversion of sources buffers to NV12 since this is 20461 the way we tested for this capability in ensure_allowed_caps(). This 20462 also saves memory bandwidth for further rendering. However, this may 20463 not preserve quality since the YUV buffers are down-sampled to 4:2:0. 20464 204652013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20466 20467 * gst-libs/gst/vaapi/gstvaapivideopool.c: 20468 pool: fix deallocation of video pools. 20469 The queue of free objects to used was deallocated with g_queue_free_full(). 20470 However, this convenience function shall only be used if the original queue 20471 was allocated with g_queue_new(). This caused memory corruption, eventually 20472 leading to a crash. 20473 The correct solution is to pair the g_queue_init() with the corresponding 20474 g_queue_clear(), while iterating over all free objects to deallocate them. 20475 204762013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com> 20477 20478 * gst/vaapi/gstvaapidownload.c: 20479 vaapidownload: fix src caps format error. 20480 This fixes direct linking of vaapidownload element to xvimagesink with 20481 VA drivers supporting vaGetImage() from the native VA surface format to 20482 a different VA image format. i.e. color conversion during download. 20483 http://bugzilla.gnome.org/show_bug.cgi?id=703937 20484 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20485 204862013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20487 20488 * gst/vaapi/gstvaapidownload.c: 20489 vaapidownload: fix debug string for image formats. 20490 The image is now expressed as a standard GstVideoFormat, which is not 20491 a FOURCC but rather a regular enum value. 20492 This is a regression introduced in commit 09397fa. 20493 204942013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com> 20495 20496 * gst-libs/gst/vaapi/gstvaapiimage.c: 20497 image: add support for raw YUY2/UYVY image copies. 20498 Implement raw image copies for YUY2 format. Add support for UYVY format 20499 too, with the same copy function as for YUY2. Even though components 20500 ordering differs, copying line strides is essentially the same. 20501 https://bugzilla.gnome.org/show_bug.cgi?id=703939 20502 https://bugzilla.gnome.org/show_bug.cgi?id=703940 20503 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20504 205052013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20506 20507 * gst/vaapi/gstvaapiuploader.c: 20508 plugins: clean-up video uploader helper. 20509 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they 20510 were already negotiated beforehand, and they are not used from the 20511 buffer in upstream elements. 20512 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps 20513 represented as a GstVideoInfo. 20514 205152013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20516 20517 * gst/vaapi/gstvaapiuploader.c: 20518 plugins: use GstVideoInfo in video uploader helper. 20519 205202013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20521 20522 * gst/vaapi/gstvaapivideomemory.c: 20523 plugins: allow creation of VA surfaces with explicit pixel format. 20524 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces 20525 with an explicit pixel format. This allows for direct rendering to 20526 VA surface memory from a software decoder. 20527 205282013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20529 20530 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 20531 surface: fix surface pool creation with an explicit pixel format. 20532 Fix creation of surface pool objects to honour explicit pixel format 20533 specification. If this operation is not supported, then fallback to 20534 the older interface with chroma format. 20535 205362013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20537 20538 * gst-libs/gst/vaapi/gstvaapisurface.c: 20539 surface: try to determine the underlying VA surface format. 20540 If a VA surface was allocated with the chroma-format interface, try to 20541 determine the underlying pixel format on gst_vaapi_surface_get_format(), 20542 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation. 20543 205442013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20545 20546 * docs/reference/libs/libs-sections.txt: 20547 * gst-libs/gst/vaapi/gstvaapisurface.c: 20548 * gst-libs/gst/vaapi/gstvaapisurface.h: 20549 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 20550 surface: allow creation with explicit pixel format. 20551 Make it possible to create VA surfaces with a specific pixel format. 20552 This is a new capability brought in by VA-API >= 0.34.0. If that 20553 capability is not built-in (e.g. using VA-API < 0.34.0), then 20554 gst_vaapi_surface_new_with_format() will return NULL. 20555 205562013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20557 20558 * docs/reference/libs/libs-sections.txt: 20559 * gst-libs/gst/vaapi/video-format.c: 20560 * gst-libs/gst/vaapi/video-format.h: 20561 surface: add helper function to get chroma type from GstVideoFormat. 20562 Add gst_video_format_get_chroma_type() helper function to determine 20563 the GstVaapiChromaType from a standard GStreamer video format. It is 20564 possible to reconstruct that from GstVideoFormatInfo but it is much 20565 simpler (and faster?) to use the local GstVideoFormatMap table. 20566 205672013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20568 20569 * gst-libs/gst/vaapi/gstvaapisurface.c: 20570 * gst-libs/gst/vaapi/gstvaapisurface.h: 20571 * gst-libs/gst/vaapi/gstvaapiutils.c: 20572 * gst-libs/gst/vaapi/gstvaapiutils.h: 20573 surface: add new chroma formats. 20574 Add new chroma formats available with VA-API >= 0.34.0. In particular, 20575 this includes "RGB" chroma formats, and more YUV subsampled formats. 20576 Also add a new from_GstVaapiChromaType() helper function to convert 20577 libgstvaapi chroma type to VA chroma format. 20578 205792013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20580 20581 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 20582 pool: fix image pool to check for the video format to use. 20583 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid 20584 image pool object, only if the underlying VA display does support the 20585 requested VA image format. 20586 205872013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20588 20589 * gst-libs/gst/vaapi/gstvaapicontext.c: 20590 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 20591 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 20592 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 20593 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 20594 * gst-libs/gst/vaapi/gstvaapivideopool.h: 20595 * gst/vaapi/gstvaapidownload.c: 20596 * gst/vaapi/gstvaapiuploader.c: 20597 * tests/Makefile.am: 20598 * tests/test-surfaces.c: 20599 Use GstVideoInfo for video pools. 20600 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo 20601 structures instead. Those are smaller, and allows for streamlining 20602 libgstvaapi more. 20603 206042013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20605 20606 * gst-libs/gst/vaapi/gstvaapiimage.c: 20607 * gst-libs/gst/vaapi/video-format.c: 20608 Add more video formats. 20609 Add new video format mappings to VA image formats: 20610 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ; 20611 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX). 20612 206132013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20614 20615 * gst-libs/gst/vaapi/gstvaapiimage.c: 20616 image: fix debug message with video format. 20617 Fix debug message string with image format expressed with GstVideoFormat 20618 instead of the obsolete format that turned out to be a fourcc. 20619 This is a regression from git commit e61c5fc. 20620 206212013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20622 20623 * tests/image.c: 20624 * tests/image.h: 20625 * tests/test-display.c: 20626 * tests/test-textures.c: 20627 * tests/test-windows.c: 20628 tests: port to new video format API. 20629 206302013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20631 20632 * gst/vaapi/gstvaapidownload.c: 20633 * gst/vaapi/gstvaapiuploader.c: 20634 * gst/vaapi/gstvaapivideomemory.c: 20635 plugins: port to new video format API. 20636 206372013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20638 20639 * gst-libs/gst/vaapi/gstvaapiimage.c: 20640 libs: use GstVideoInfo wherever possible. 20641 In particular, use gst_video_info_from_caps() helper function in VA image 20642 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and 20643 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds. 20644 206452013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20646 20647 * docs/reference/libs/libs-docs.xml.in: 20648 * docs/reference/libs/libs-sections.txt: 20649 * gst-libs/gst/vaapi/Makefile.am: 20650 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 20651 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 20652 libs: drop GstVaapiImageFormat helpers. 20653 Drop GstVaapiImageFormat helpers since everything was moved to the new 20654 GstVideoFormat based API. Don't bother with backwards compatibility and 20655 just bump the library major version afterwards. 20656 206572013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20658 20659 * gst-libs/gst/vaapi/gstvaapidisplay.c: 20660 * gst-libs/gst/vaapi/gstvaapidisplay.h: 20661 * gst-libs/gst/vaapi/gstvaapiimage.c: 20662 * gst-libs/gst/vaapi/gstvaapiimage.h: 20663 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 20664 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 20665 libs: port to new video format API. 20666 206672013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20668 20669 * docs/reference/libs/libs-docs.xml.in: 20670 * docs/reference/libs/libs-sections.txt: 20671 * gst-libs/gst/vaapi/Makefile.am: 20672 * gst-libs/gst/vaapi/video-format.c: 20673 * gst-libs/gst/vaapi/video-format.h: 20674 Add new video format API. 20675 Leverage GstVideoFormat utilities from core GStreamer to provide an 20676 adaptation layer to VA image formats. 20677 206782013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20679 20680 * NEWS: 20681 NEWS: updates. 20682 206832013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20684 20685 * gst/vaapi/gstvaapisink.c: 20686 vaapisink: fix creation of GLX texture. 20687 Fix creation of GLX texture, to not depend on the GstCaps video size that 20688 could be wrong, especially in presence of frame cropping. So, use the size 20689 from the source VA surfaces. 20690 An optimization could be to reduce the texture size to the actual visible 20691 size on screen. i.e. scale down the texture size to match the screen dimensions, 20692 while preserving the VA surface aspect ratio. However, some VA drivers don't 20693 honour that. 20694 206952013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20696 20697 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 20698 mpeg2: add support for video cropping. 20699 If the stream has a sequence_display_extenion, then attach the 20700 display_horizontal/display_vertical dimension as the cropping 20701 rectangle width/height to the GstVaapiPicture. 20702 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20703 207042013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20705 20706 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 20707 vc1: add support for video cropping. 20708 If the Advanced profile has display_extension fields, then set the display 20709 width/height dimension as cropping rectangle to the GstVaapiPicture. 20710 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20711 207122013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20713 20714 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 20715 h264: add support for video cropping. 20716 If the encoded stream has the frame_cropping_flag set, then associate 20717 the cropping rectangle to GstVaapiPicture. 20718 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20719 207202013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20721 20722 * tests/decoder.c: 20723 * tests/decoder.h: 20724 * tests/test-decode.c: 20725 * tests/test-subpicture.c: 20726 tests: add basic support for video cropping. 20727 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy 20728 instead of a plain GstVaapiSurface. This means that we can now retrieve 20729 the frame cropping rectangle from the surface proxy, along with additional 20730 information if ever needed. 20731 207322013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20733 20734 * gst/vaapi/gstvaapidecode.c: 20735 * gst/vaapi/gstvaapisink.c: 20736 * gst/vaapi/gstvaapivideometa.c: 20737 plugins: add support for video cropping. 20738 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi 20739 specific meta information to hold video cropping details. Make the sink 20740 support video cropping in X11 and GLX modes. 20741 207422013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20743 20744 * gst/vaapi/gstvaapivideometa.c: 20745 * gst/vaapi/gstvaapivideometa.h: 20746 plugins: add helper functions to set the render rectangle. 20747 Some video clips may have a clipping region that needs to propogate to 20748 the renderer. These helper functions make it possible to attach that 20749 clipping region, as a GstVaapiRectangle, the the video meta associated 20750 with the buffer. 20751 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20752 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20753 207542013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20755 20756 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 20757 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 20758 surfaceproxy: allow for NULL cropping rectangle. 20759 Make it possible associate an empty cropping rectangle to the surface 20760 proxy, thus resetting any cropping rectangle that was previously set. 20761 This allows for returning plain NULL when no cropping rectangle was 20762 initially set up to the surface proxy, or if it was reset to defaults. 20763 207642013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20765 20766 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 20767 surfaceproxy: clean-up helper macros. 20768 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a 20769 proxy macro argument to a GstVaapiSurfaceProxy pointer. 20770 207712013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20772 20773 * gst-libs/gst/vaapi/gstvaapisurface.c: 20774 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 20775 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 20776 * gst-libs/gst/vaapi/gstvaapiwindow.c: 20777 surface: add simple surface info accessors as helper macros. 20778 Add helper macros to retrieve the VA surface information like size 20779 (width, height) or chroma type. This is a micro-optimization to avoid 20780 useless function calls and NULL pointer re-checks in internal routines. 20781 207822013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20783 20784 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 20785 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 20786 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 20787 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 20788 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 20789 decoder: add support for video cropping. 20790 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video 20791 cropping information from raw bitstreams to each picture being decoded. 20792 Also add helper function to surface proxy to propagate that information 20793 outside of libgstvaapi. e.g. plug-in elements or standalone applications. 20794 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20795 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20796 207972013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20798 20799 * ext/codecparsers: 20800 codecparsers: update to gst-vaapi-branch commit f90de0a. 20801 f90de0a h264: fix calculation of the frame cropping rectangle 20802 535515c h264: parse the cropping rectangle separately 20803 208042013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20805 20806 * ext/codecparsers: 20807 codecparsers: update to gst-vaapi-branch commit 0f68a71. 20808 0f68a71 mpeg2: fix video packet header size checks 20809 208102013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com> 20811 20812 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 20813 mpeg2: reset quantization matrices on new sequence headers. 20814 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices 20815 shall be reset to their default values when a Sequence_Header() is 20816 decoded. 20817 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20818 208192013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20820 20821 * configure.ac: 20822 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 20823 mpeg2: cope with latest codecparser changes. 20824 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are 20825 used in individual header parsers. Also use the new slice parsing API. 20826 208272013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20828 20829 * ext/codecparsers: 20830 codecparsers: update to gst-vaapi-branch commit dddd182. 20831 dddd182 mpeg2: add slice header parsing API 20832 94e6228 mpeg2: add sequence scalable extension parsing API 20833 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments 20834 4b135d3 h264: fix the return value type for the SEI palyload parsing methods 20835 208362013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 20837 20838 * gst/vaapi/gstvaapisink.c: 20839 vaapisink: expose the raw video formats in static caps template. 20840 Expose all raw video formats in the static caps template since the 20841 vaapisink is supporting raw data. We will get the exact set of formats 20842 supported by the driver dynamically through the _get_caps() routine. 20843 This also fixes an inconsistency wrt. GStreamer 0.10 builds. 20844 https://bugzilla.gnome.org/show_bug.cgi?id=702178 20845 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20846 208472013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20848 20849 * gst/vaapi/gstvaapisink.c: 20850 * gst/vaapi/gstvaapisink.h: 20851 vaapisink: add "use-glx" property for OpenGL rendering. 20852 Now that VA/GLX capable buffers are generated by default on X11, thus 20853 depending on a VA/GLX display, we stil want to use vaPutSurface() for 20854 rendering since it is faster. 20855 Anyway, OpenGL rendering in vaapisink was only meant for testing and 20856 enabling "fancy" effects to play with. This has no real value. So, 20857 disable OpenGL rendering by default. 20858 208592013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 20860 20861 * gst/vaapi/gstvaapipluginutil.c: 20862 plugins: try to allocate a GLX display first over an X11 one. 20863 If the gstreamer-vaapi plug-in elements are built with GLX support, then 20864 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11 20865 display next. 20866 https://bugzilla.gnome.org/show_bug.cgi?id=701742 20867 208682013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com> 20869 20870 * configure.ac: 20871 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0. 20872 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH. 20873 https://bugzilla.gnome.org/show_bug.cgi?id=698858 20874 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20875 208762013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com> 20877 20878 * gst-libs/gst/vaapi/gstvaapiimage.c: 20879 image: fix wrong check for rect bounds in copy_image(). 20880 208812013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20882 20883 * configure.ac: 20884 Bump version for development. 20885 208862013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20887 20888 * NEWS: 20889 * configure.ac: 20890 0.5.4. 20891 208922013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20893 20894 * NEWS: 20895 NEWS: updates. 20896 208972013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20898 20899 * configure.ac: 20900 * gst-libs/gst/codecparsers/Makefile.am: 20901 configure: always build the MPEG-4 parser. 20902 Always build the MPEG-4 parser for now as there are also core fixes 20903 included in the parser that cannot be tested for with API checks. 20904 209052013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20906 20907 * configure.ac: 20908 configure: add --enable-builtin-codecparsers [default="yes"] option. 20909 Add flag to have all codecparsers built-in, thus ensuring that the 20910 resulting binaries have all the necessary bug fixes and this is what 20911 the QA has been testing anyway. 20912 Of course, for a completely up-to-date Linux distribution, you could 20913 also opt for --disable-builtin-codecparsers and use the system ones. 20914 Though, some core fixes could be missing, and those cannot be tested 20915 for with API checks. 20916 209172013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20918 20919 * ext/codecparsers: 20920 codecparsers: update to gst-vaapi-branch commit 843ce3e. 20921 843ce3e jpeg: fix default Huffman tables generation. 20922 8655187 mpeg2: fix the pixel-aspect-ratio calculation 20923 21099dc mpeg2: actually store video bitrate values 20924 dd02087 mpeg2: fix picture packet extension size check 20925 25948e9 mpeg2: increase min size for picture coding ext 20926 f1f5a40 ensure the debug category is properly initialized 20927 209282013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20929 20930 * debian.upstream/Makefile.am: 20931 debian: fix list of generated files for .deb packaging. 20932 209332013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20934 20935 * configure.ac: 20936 * debian.upstream/Makefile.am: 20937 * debian.upstream/control.in: 20938 debian: fix libgstvaapi -dev package name. 20939 Fix libgstvaapi -dev package name so that to allow installation of both 20940 GStreamer 0.10 and 1.0.x based packages. 20941 209422013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20943 20944 * NEWS: 20945 NEWS: updates. 20946 209472013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20948 20949 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 20950 wayland: fix memory leak of display resources. 20951 209522013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com> 20953 20954 * gst/vaapi/gstvaapisink.c: 20955 vaapisink: fix build without VA/GLX support. 20956 209572013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20958 20959 * gst/vaapi/gstvaapivideomemory.c: 20960 * gst/vaapi/gstvaapivideomemory.h: 20961 plugins: allow buffer mappings to GstVaapiSurfaceProxy. 20962 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi 20963 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the 20964 caller. This is the only sensible enough thing to do in this mode as 20965 the underlying surface pixels need to be extracted through an explicit 20966 call to the gst_video_frame_map() function instead. 20967 A possible use-case of this is to implement a "handoff" signal handler 20968 to fakesink or identity element for further processing. 20969 209702013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20971 20972 * gst/vaapi/gstvaapivideomemory.c: 20973 plugins: silence check for direct-rendering mode in video memory. 20974 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering 20975 mode support, and not trigger fatal-criticals if either test surface or 20976 image could not be created. Typical case: pixel format mismatch, e.g. NV12 20977 supported by most hardware vs. I420 supported by most software decoders. 20978 209792013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20980 20981 * gst/vaapi/gstvaapivideomemory.c: 20982 plugins: improve video memory flags safety checks. 20983 On map, ensure we have GST_MAP_WRITE flags since this is only what we 20984 support for now. Likewise, on unmap, make sure that the VA image is 20985 unmapped for either read or write, while still committing it to the 20986 VA surface if write was requested. 20987 209882013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 20989 20990 * gst-libs/gst/vaapi/gstvaapisurface.c: 20991 surface: fix memory leak through unreleased parent context. 20992 Break the circular references between GstVaapiContext and its children 20993 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the 20994 context, which holds a reference to its VA surfaces, then none of those 20995 were released. 20996 How does this impact support for subpictures? 20997 The only situation when the parent context needs to disappear is when 20998 it is replaced with another one because of a resolution change in the 20999 video stream for instance, or a normal destroy. In this case, it does 21000 not really matter to apply subpictures to the peer surfaces since they 21001 are either gone, or those that are left in the pipe can probably bear 21002 a reinstantiation of the subpictures for it. 21003 So, parent_context is set to NULL when the parent context is destroyed, 21004 other VA surfaces can still get subpictures attached to them, individually 21005 not as a whole. i.e. subpictures for surface S1 will be created from 21006 active composition buffers and associated to S1, subpictures for S2 will 21007 be created from the next active composition buffers, etc. We don't try 21008 to cache the subpictures in those cases (pending surfaces until EOS 21009 is reached, or pending surfaces until new surfaces matching new VA context 21010 get to be used instead). 21011 210122013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21013 21014 * gst/vaapi/gstvaapisink.c: 21015 vaapisink: fix one-time initialization when display property is set. 21016 Fix gst_vaapisink_ensure_display() to perform one-time initialization 21017 tasks even if the `display' property was explicitly set. 21018 210192013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21020 21021 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 21022 window: fix GLX window initialization. 21023 Make sure to create the GLX context once the window object has completed 21024 its creation. Since gl_resize() relies on the newly created window size, 21025 then we cannot simply overload the GstVaapiWindowClass::create() hook. 21026 So, we just call into gst_vaapi_window_glx_ensure_context() once the 21027 window object is created in the gst_vaapi_window_glx_new*() functions. 21028 210292013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21030 21031 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 21032 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 21033 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 21034 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 21035 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 21036 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 21037 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 21038 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 21039 * gst-libs/gst/vaapi/gstvaapitexture.c: 21040 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 21041 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 21042 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 21043 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 21044 display: validate display types. 21045 210462013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21047 21048 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 21049 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 21050 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 21051 display: drop internal NAME_PREFIX, store the real display name. 21052 Always store a valid display name/device path, instead of adding a 21053 particular prefix. i.e. make it simply a strdup(), or "" if it was 21054 initially NULL. 21055 210562013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21057 21058 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 21059 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 21060 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 21061 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 21062 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 21063 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 21064 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 21065 display: make it possible to lookup the display cache by type. 21066 Make it possible to add extra an extra filter to most of display cache 21067 lookup functions so that the GstVaapiDisplay instance can really match 21068 a compatible and existing display by type, instead of relying on extra 21069 string tags (e.g. "X11:" prefix, etc.). 21070 210712013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21072 21073 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 21074 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 21075 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 21076 display: cope with new display cache API. 21077 210782013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21079 21080 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 21081 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 21082 display: rework display cache API. 21083 Simplify display cache API, while making it more flexible. We can now create 21084 custom lookup functions with gst_vaapi_display_cache_lookup_custom(). 21085 210862013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21087 21088 * tests/test-display.c: 21089 tests: improve check for display cache. 21090 Improve check for display cache infrastructure. In particular, for X11 and 21091 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11 21092 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be 21093 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11 21094 already exists will have to generate different VA displays. 21095 210962013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com> 21097 21098 * gst/vaapi/gstvaapiuploader.c: 21099 uploader: fix memory leak in GStreamer 0.10 builds. 21100 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used 21101 but it exhibited a memory leak because the surface generated for the 21102 GstVaapiVideoMeta totally lost its parent video pool. So, it was not 21103 possible to release that surface back to the parent pool when the meta 21104 gets released, and the memory consumption kept growing. 21105 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21106 211072013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21108 21109 * gst/vaapi/gstvaapivideometa.c: 21110 plugins: fix gst_vaapi_video_meta_new_from_pool(). 21111 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not 21112 the underlying object type, the gst_vaapi_video_meta_new_from_pool() 21113 was hereby totally broken. Fixed this regression by using the newly 21114 provided gst_vaapi_video_pool_get_object_type() function. 21115 211162013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21117 21118 * gst/vaapi/gstvaapiuploader.c: 21119 * gst/vaapi/gstvaapivideomemory.c: 21120 * gst/vaapi/gstvaapivideometa.c: 21121 plugins: cope with GST_VAAPI_IS_xxx() macros removal. 21122 211232013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21124 21125 * tests/decoder.c: 21126 tests: cope with GST_VAAPI_IS_xxx() macros removal. 21127 211282013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21129 21130 * docs/reference/libs/libs-sections.txt: 21131 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 21132 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 21133 * gst-libs/gst/vaapi/gstvaapivideopool.c: 21134 * gst-libs/gst/vaapi/gstvaapivideopool.h: 21135 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: 21136 libs: add query for GstVaapiVideoPool object types. 21137 Add API to identify the underlying GstVaapiVideoPool object type. 21138 211392013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21140 21141 * docs/reference/libs/libs-sections.txt: 21142 * gst-libs/gst/vaapi/gstvaapicontext.c: 21143 * gst-libs/gst/vaapi/gstvaapicontext.h: 21144 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21145 * gst-libs/gst/vaapi/gstvaapidecoder.h: 21146 * gst-libs/gst/vaapi/gstvaapidisplay.c: 21147 * gst-libs/gst/vaapi/gstvaapidisplay.h: 21148 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 21149 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: 21150 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 21151 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 21152 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 21153 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 21154 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 21155 * gst-libs/gst/vaapi/gstvaapiimage.c: 21156 * gst-libs/gst/vaapi/gstvaapiimage.h: 21157 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 21158 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 21159 * gst-libs/gst/vaapi/gstvaapiobject.c: 21160 * gst-libs/gst/vaapi/gstvaapiobject.h: 21161 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 21162 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 21163 * gst-libs/gst/vaapi/gstvaapisurface.c: 21164 * gst-libs/gst/vaapi/gstvaapisurface.h: 21165 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 21166 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 21167 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21168 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 21169 * gst-libs/gst/vaapi/gstvaapitexture.c: 21170 * gst-libs/gst/vaapi/gstvaapivideopool.c: 21171 * gst-libs/gst/vaapi/gstvaapivideopool.h: 21172 * gst-libs/gst/vaapi/gstvaapiwindow.c: 21173 * gst-libs/gst/vaapi/gstvaapiwindow.h: 21174 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: 21175 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 21176 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 21177 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 21178 libs: drop GST_VAAPI_IS_xxx() helper macros. 21179 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer 21180 deriving from GObject and so those were only checking for whether the 21181 argument was NULL or not. This is now irrelevant, and even confusing 21182 to some extent, because we no longer have type checking. 21183 Note: this incurs more type checking (review) but the libgstvaapi is 21184 rather small, so this is manageable. 21185 211862013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21187 21188 * configure.ac: 21189 Bump library major version. 21190 The whole libgstvaapi libraries got a major refresh to get rid of GObject. 21191 This is a fundamental change that requires a new SONAME. More changes are 21192 underway to streamline the core libraries. 21193 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%. 21194 On one particular test (sintel HD trailer), the total number of executed 21195 instruction was reduced by 8%. 21196 211972013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21198 21199 * docs/reference/libs/Makefile.am: 21200 * docs/reference/libs/libs-docs.xml.in: 21201 * docs/reference/libs/libs-sections.txt: 21202 * docs/reference/libs/libs.core.types: 21203 * docs/reference/libs/libs.glx.types: 21204 * docs/reference/libs/libs.x11.types: 21205 docs: cope with removed APIs. 21206 Some APIs are dead because they are no longer based on GObject. 21207 212082013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21209 21210 * gst/vaapi/gstvaapidecode.c: 21211 * gst/vaapi/gstvaapidownload.c: 21212 * gst/vaapi/gstvaapipluginutil.c: 21213 * gst/vaapi/gstvaapipostproc.c: 21214 * gst/vaapi/gstvaapisink.c: 21215 * gst/vaapi/gstvaapiupload.c: 21216 * gst/vaapi/gstvaapiuploader.c: 21217 * gst/vaapi/gstvaapivideobufferpool.c: 21218 * gst/vaapi/gstvaapivideoconverter_glx.c: 21219 * gst/vaapi/gstvaapivideomemory.c: 21220 * gst/vaapi/gstvaapivideometa.c: 21221 plugins: cope with new GstVaapiMiniObject objects. 21222 212232013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21224 21225 * tests/decoder.c: 21226 * tests/image.c: 21227 * tests/output.c: 21228 * tests/simple-decoder.c: 21229 * tests/test-decode.c: 21230 * tests/test-display.c: 21231 * tests/test-subpicture.c: 21232 * tests/test-surfaces.c: 21233 * tests/test-textures.c: 21234 * tests/test-windows.c: 21235 tests: cope with new GstVaapiMiniObject objects. 21236 212372013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21238 21239 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 21240 display: fix set_synchronous() to lock display. 21241 212422013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21243 21244 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 21245 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 21246 videopool: simplify creation of video objects pool. 21247 212482013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21249 21250 * gst-libs/gst/vaapi/gstvaapiobject.c: 21251 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21252 * gst-libs/gst/vaapi/gstvaapitypes.h: 21253 libs: simplify GstVaapiID definitions. 21254 Make GstVaapiID a gsize instead of guessing an underlying integer large 21255 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since 21256 this is plain zero and that it is no longer passed as varargs. 21257 212582013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21259 21260 * gst-libs/gst/vaapi/Makefile.am: 21261 * gst-libs/gst/vaapi/gstvaapi_priv.h: 21262 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 21263 * gst-libs/gst/vaapi/gstvaapiparamspecs.h: 21264 * gst-libs/gst/vaapi/gstvaapivalue.c: 21265 * gst-libs/gst/vaapi/gstvaapivalue.h: 21266 libs: drop obsolete function helpers and objects. 21267 Drop obsolete GstVaapiID related function helpers for passing them as 21268 GValues. 21269 212702013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21271 21272 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21273 * gst-libs/gst/vaapi/gstvaapidisplay.c: 21274 * gst-libs/gst/vaapi/gstvaapidisplay.h: 21275 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 21276 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: 21277 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 21278 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 21279 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 21280 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 21281 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 21282 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 21283 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 21284 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 21285 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 21286 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 21287 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 21288 * gst-libs/gst/vaapi/gstvaapiobject.c: 21289 * gst-libs/gst/vaapi/gstvaapivideopool.c: 21290 libs: use GstVaapiMiniObject for display objects. 21291 212922013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21293 21294 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 21295 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21296 * gst-libs/gst/vaapi/gstvaapidecoder.h: 21297 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 21298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 21299 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 21300 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: 21301 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 21302 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 21303 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 21304 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 21305 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 21306 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 21307 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 21308 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 21309 libs: use GstVaapiMiniObject for video decoders. 21310 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to 21311 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func() 21312 helper function to let the user add a callback to a function triggered 21313 whenever the codec state (e.g. caps) changes. 21314 213152013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21316 21317 * docs/reference/libs/libs-sections.txt: 21318 * gst-libs/gst/vaapi/Makefile.am: 21319 * gst-libs/gst/vaapi/gstvaapicontext.c: 21320 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 21321 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 21322 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 21323 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 21324 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21325 * gst-libs/gst/vaapi/gstvaapivideopool.c: 21326 * gst-libs/gst/vaapi/gstvaapivideopool.h: 21327 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h: 21328 libs: use GstVaapiMiniObject for video object pools. 21329 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to 21330 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was 21331 no longer used for a long time. Make object allocators static, i.e. 21332 local to the shared library. 21333 213342013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21335 21336 * gst-libs/gst/vaapi/gstvaapitexture.c: 21337 * gst-libs/gst/vaapi/gstvaapitexture.h: 21338 libs: use GstVaapiObject for texture objects. 21339 213402013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21341 21342 * gst-libs/gst/vaapi/Makefile.am: 21343 * gst-libs/gst/vaapi/gstvaapiwindow.c: 21344 * gst-libs/gst/vaapi/gstvaapiwindow.h: 21345 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 21346 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: 21347 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 21348 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 21349 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 21350 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 21351 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: 21352 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 21353 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 21354 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h: 21355 libs: use GstVaapiObject for window objects. 21356 213572013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21358 21359 * gst-libs/gst/vaapi/gstvaapicontext.c: 21360 * gst-libs/gst/vaapi/gstvaapicontext.h: 21361 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21362 * gst-libs/gst/vaapi/gstvaapiimage.c: 21363 * gst-libs/gst/vaapi/gstvaapiimage.h: 21364 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 21365 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 21366 * gst-libs/gst/vaapi/gstvaapisurface.c: 21367 * gst-libs/gst/vaapi/gstvaapisurface.h: 21368 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21369 * gst-libs/gst/vaapi/gstvaapivideopool.c: 21370 libs: use GstVaapiObject for VA objects. 21371 213722013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21373 21374 * gst-libs/gst/vaapi/Makefile.am: 21375 * gst-libs/gst/vaapi/gstvaapiobject.c: 21376 * gst-libs/gst/vaapi/gstvaapiobject.h: 21377 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 21378 Port GstVaapiObject to GstVaapiMiniObject. 21379 213802013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21381 21382 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 21383 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 21384 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 21385 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 21386 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 21387 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 21388 libs: refine GstVaapiMiniObject. 21389 Drop support for user-defined data since this capability was not used 21390 so far and GstVaapiMiniObject represents the smallest reference counted 21391 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro. 21392 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it 21393 is also possible to further simplify the layout of the object. i.e. merge 21394 GstVaapiMiniObjectBase into GstVaapiMiniObject. 21395 213962013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21397 21398 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21399 decoder: update picture size from the bitstream. 21400 Propagate the picture size from the bitstream to the GstVaapiDecoder, 21401 and subsequent user who installed a signal on notify::caps. This fixes 21402 decoding of TS streams when the demuxer failed to extract the required 21403 information. 21404 214052013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21406 21407 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21408 decoder: fix raw decoding mode. 21409 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the 21410 surface proxy to the caller. 21411 214122013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21413 21414 * docs/reference/libs/libs-sections.txt: 21415 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21416 * gst-libs/gst/vaapi/gstvaapidecoder.h: 21417 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 21418 * gst/vaapi/gstvaapidecode.c: 21419 decoder: add gst_vaapi_decoder_get_frame_with_timeout(). 21420 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will 21421 wait for a frame to be decoded, until the specified timeout in microseconds, 21422 prior to returning to the caller. 21423 This is a fix to performance regression from 851cc0, whereby the vaapidecode 21424 loop executed on the srcpad task was called to often, thus starving all CPU 21425 resources. 21426 214272013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21428 21429 * configure.ac: 21430 Bump version for development. 21431 214322013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21433 21434 * NEWS: 21435 * configure.ac: 21436 0.5.3. 21437 214382013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21439 21440 * NEWS: 21441 NEWS: updates. 21442 214432013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21444 21445 * gst/vaapi/gstvaapidecode.c: 21446 vaapidecode: rework heuristics to detect decode timeout. 21447 Rework heuristics to detect when downstream element ran into errors, 21448 and thus failing to release any VA surface in due time for the current 21449 frame to get decoded. In particular, recalibrate the render time base 21450 when the first frame gets submitted downstream, or when there is no 21451 timestamp that could be inferred. 21452 214532013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21454 21455 * gst-libs/gst/vaapi/gstcompat.h: 21456 * gst/vaapi/gstvaapidecode.c: 21457 vaapidecode: rework GstVideoDecoder::handle_frame() with a task. 21458 Rework GstVideoDecoder::handle_frame() to decode the current frame, 21459 while possibly waiting for a free surface, and separately submit all 21460 decoded frames from a task. This makes it possible to pop and render 21461 decoded frames as soon as possible. 21462 214632013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21464 21465 * gst/vaapi/gstvaapidecode.c: 21466 * gst/vaapi/gstvaapidownload.c: 21467 * gst/vaapi/gstvaapisink.c: 21468 * gst/vaapi/gstvaapiupload.c: 21469 plugins: use gst_object_unref() wherever applicable. 21470 Use gst_object_unref() wherever applicable, e.g. objects derived from 21471 GstElement, GstVideoPool, etc. 21472 214732013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21474 21475 * docs/reference/plugins/plugins-docs.xml.in: 21476 * docs/reference/plugins/plugins-sections.txt: 21477 * docs/reference/plugins/plugins.types: 21478 docs: drop obsolete plug-ins. 21479 Drop documentation for obsolete plug-ins, even for GStreamer 0.10. 21480 i.e. vaapiupload and vaapidownload are no longer the recommended 21481 plug-ins to use. 21482 214832013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21484 21485 * debian.upstream/rules: 21486 debian: fix build of GStreamer 0.10 packages. 21487 Fix build of Debian packages to scan the actual GStreamer API version 21488 from the generated changelog file. 21489 214902013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21491 21492 * gst/vaapi/gstvaapipostproc.c: 21493 vaapipostproc: minor clean-ups. 21494 Use g_clear_object() wherever appropriate and remove dead-code. 21495 214962013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21497 21498 * gst/vaapi/gstvaapipostproc.c: 21499 vaapipostproc: fix reference counting buf for passthrough mode. 21500 Fix reference counting bug for passthrough mode, whereby the input buffer 21501 was propagated as is downstream through gst_pad_push() without increasing 21502 its reference count before. The was a problem when gst_pad_push() returns 21503 an error and we further decrease the reference count of the input buffer. 21504 215052013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21506 21507 * gst-libs/gst/vaapi/gstcompat.h: 21508 * gst/vaapi/Makefile.am: 21509 * gst/vaapi/gstvaapi.c: 21510 * gst/vaapi/gstvaapidecode.c: 21511 * gst/vaapi/gstvaapipluginutil.h: 21512 * gst/vaapi/gstvaapipostproc.c: 21513 vaapipostproc: port to GStreamer 1.0. 21514 Add support for interlaced streams with GStreamer 1.0 too. Basically, 21515 this enables vaapipostproc, though it is not auto-plugged yet. We also 21516 make sure to reply to CAPS queries, and happily handle CAPS events. 21517 215182013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21519 21520 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21521 decoder: fix GstVideoCodecFrame flags for interlaced contents. 21522 Fix support for interlaced contents with GStreamer 0.10. In particular, 21523 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags 21524 correctly. 21525 This is a regression from commit 87e5717. 21526 215272013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21528 21529 * gst-libs/gst/vaapi/Makefile.am: 21530 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21531 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 21532 * gst-libs/gst/vaapi/gstvaapiparser_frame.c: 21533 * gst-libs/gst/vaapi/gstvaapiparser_frame.h: 21534 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame. 21535 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data 21536 structure was only useful to parsing and a proper GstvaapiDecoderFrame 21537 instance will be created instead. 21538 215392013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21540 21541 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21542 decoder: export presentation timestamp for raw decoding mode. 21543 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer 21544 held any information about the expected presentation timestamp, frame 21545 duration or additional flags like interlaced or top-field-first. 21546 215472013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21548 21549 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21550 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 21551 decoder: use new GstVaapiSurfaceProxy utility functions. 21552 Use new GstVaapiSurfaceProxy internal helper functions to propagate the 21553 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10). 21554 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame(). 21555 i.e. increase the GstVideoCodecFrame reference count in push_frame rather 21556 than gst_vaapi_picture_output(). 21557 215582013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21559 21560 * docs/reference/libs/libs-sections.txt: 21561 * gst-libs/gst/vaapi/Makefile.am: 21562 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21563 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 21564 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h: 21565 surfaceproxy: add more attributes for raw decoding modes. 21566 Add more attributes for raw decoding modes, i.e. directly through the 21567 libgstvaapi helper library. In particular, add presentation timestamp, 21568 duration and a couple of flags (interlaced, TFF, RFF, one-field). 21569 215702013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21571 21572 * docs/reference/libs/libs-sections.txt: 21573 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21574 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 21575 * gst/vaapi/gstvaapidecode.c: 21576 * tests/simple-decoder.c: 21577 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy. 21578 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit 21579 to call some user-provided function when the surface proxy is released. 21580 215812013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 21582 21583 * configure.ac: 21584 * gst-libs/gst/vaapi/Makefile.am: 21585 build: link libgstvaapi-glx-1.0.so against libdl. 21586 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used 21587 to resolve glXGetProcAddress() from GLX libraries. This fix builds on 21588 Fedora 17. 21589 https://bugzilla.gnome.org/show_bug.cgi?id=698046 21590 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21591 215922013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21593 21594 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21595 decoder: fix gst_vaapi_decoder_get_codec_state(). 21596 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was 21597 supposed to make GstVaapiDecoder own the return GstVideoCodecState 21598 object. Only comment was updated, not the actual code. 21599 216002013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21601 21602 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21603 * gst/vaapi/gstvaapidecode.c: 21604 decoder: make gst_vaapi_decoder_get_codec_state() return the original state. 21605 Make gst_vaapi_decoder_get_codec_state() return the original codec state, 21606 i.e. make the GstVaapiDecoder object own the return state so that callers 21607 that want an extra reference to it would just gst_video_codec_state_ref() 21608 it before usage. This aligns the behaviour with what we had before with 21609 gst_vaapi_decoder_get_caps(). 21610 This is an ABI incompatible change, library major version was bumped from 21611 previous release (0.5.2). 21612 216132013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21614 21615 * gst/vaapi/gstvaapivideobufferpool.h: 21616 * gst/vaapi/gstvaapivideoconverter_glx.h: 21617 plugins: mark a few more functions as internal. 21618 Mark the following functions are internal, i.e. private to the vaapi plug-in: 21619 - gst_vaapi_video_buffer_pool_get_type() 21620 - gst_vaapi_video_converter_glx_get_type() 21621 - gst_vaapi_video_converter_glx_new() 21622 216232013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21624 21625 * gst/vaapi/gstvaapivideobuffer.c: 21626 plugins: implement GstSurfaceMeta API. 21627 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is 21628 an unstable/deprecated API, this makes it possible to support Clutter 21629 sink with minimal changes. Tested against clutter-gst 1.9.92. 21630 216312013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21632 21633 * gst/vaapi/gstvaapisink.c: 21634 vaapisink: optimize GstVideoOverlayInterface::expose(). 21635 When render-mode is "overlay", then it is not really useful to peek into 21636 the GstBaseSink::last_buffer, since we have our own video_buffer already 21637 recorded and maintained into GstVaapiSink. 21638 216392013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21640 21641 * gst/vaapi/gstvaapisink.c: 21642 vaapisink: fix memory leak of GstSample objects. 21643 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose(). 21644 This also fixes extra unreferencing of the underlying GstBuffer in the common 21645 path afterwards (for both 0.10 or 1.0). 21646 216472013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21648 21649 * gst-libs/gst/vaapi/gstcompat.h: 21650 * gst/vaapi/gstvaapi.c: 21651 plugins: fix description for gst-inspect. 21652 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we 21653 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE 21654 incorrectly uses #name for creating the plug-in name, instead of using macro 21655 expansion (and let further expansion of macros) through e.g. G_STRINGIFY(). 21656 216572013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21658 21659 * README: 21660 README: updates. 21661 Update build requirements for GStreamer 1.0.x support. Add section for 21662 ways to report bugs. 21663 216642013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21665 21666 * NEWS: 21667 NEWS: updates. 21668 216692013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21670 21671 * gst-libs/gst/vaapi/Makefile.am: 21672 * gst/vaapi/Makefile.am: 21673 Fix make dist to include all source files, in any case. 21674 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make 21675 sure to include all source files in either case while generating source 21676 tarballs. 21677 216782013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21679 21680 * configure.ac: 21681 Bump library major version. 21682 Bump library major version, while preserving a major version of 0 for 21683 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer 21684 0.10 based librarieS. 21685 216862013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21687 21688 * gst/vaapi/gstvaapivideomemory.c: 21689 * gst/vaapi/gstvaapivideomemory.h: 21690 plugins: implement direct-rendering mode for raw YUV buffer uploads. 21691 Allow direct-rendering (writes) into target VA surfaces. 21692 216932013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21694 21695 * gst/vaapi/gstvaapivideobufferpool.c: 21696 * gst/vaapi/gstvaapivideomemory.c: 21697 * gst/vaapi/gstvaapivideomemory.h: 21698 plugins: implement uploads from raw YUV buffers for GStreamer 1.0. 21699 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when 21700 the last component is unmapped. Downloads are not supported yet. The aim 21701 was to first support SW decoding + HW accelerated rendering (vaapisink). 21702 e.g. for Wayland. 21703 217042013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21705 21706 * gst/vaapi/gstvaapidecode.c: 21707 vaapidecode: submit all decoded frames before decoding a new one. 21708 Make sure to purge all pending frames that were already decoded prior 21709 to decoding a new one. This helps release VA surfaces as early as 21710 possible. 21711 217122013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21713 21714 * gst/vaapi/gstvaapidecode.c: 21715 vaapidecode: reply to CAPS queries. 21716 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve 21717 the set of allowed caps, i.e. it works similar to GstPad::get_caps(). 21718 This fixes fallback to SW decoding if no HW decoder is available. 21719 217202013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21721 21722 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21723 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 21724 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 21725 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 21726 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 21727 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 21728 decoder: fix unpaired GstBuffer map/unmaps. 21729 This possibly fixes a few memory leaks along the way. 21730 217312013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21732 21733 * configure.ac: 21734 * gst-libs/gst/vaapi/gstcompat.h: 21735 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 21736 * gst-libs/gst/vaapi/gstvaapiprofile.c: 21737 * gst/vaapi/Makefile.am: 21738 * gst/vaapi/gstvaapi.c: 21739 * gst/vaapi/gstvaapidecode.c: 21740 * gst/vaapi/gstvaapisink.c: 21741 * gst/vaapi/gstvaapisink.h: 21742 * gst/vaapi/gstvaapiuploader.c: 21743 * tests/codec.c: 21744 Allow build against either GStreamer API (0.10 or 1.0). 21745 Introduce a new configure option --with-gstreamer-api that determines 21746 the desired GStreamer API to use. By default, GStreamer 1.0 is selected. 21747 Also integrate more compatibility glue into gstcompat.h and plugins. 21748 217492012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 21750 21751 * gst/vaapi/gstvaapidecode.c: 21752 * gst/vaapi/gstvaapisink.c: 21753 * gst/vaapi/gstvaapisink.h: 21754 plugins: use new video buffer pools. 21755 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement 21756 GstBaseSink::propose_allocation() to expose that pool to upstream 21757 elements; and also implement GstVideoDecoder::decide_allocation() to 21758 actually use that pool (from downstream), if any, or create one. 21759 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21760 217612012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 21762 21763 * gst/vaapi/Makefile.am: 21764 * gst/vaapi/gstvaapivideobufferpool.c: 21765 * gst/vaapi/gstvaapivideobufferpool.h: 21766 * gst/vaapi/gstvaapivideomemory.c: 21767 * gst/vaapi/gstvaapivideomemory.h: 21768 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects. 21769 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory 21770 object currently holds a reference to GstVaapiVideoMeta. 21771 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21772 217732013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21774 21775 * gst/vaapi/gstvaapivideometa.c: 21776 * gst/vaapi/gstvaapivideometa.h: 21777 plugins: allow copies of GstVaapiVideoMeta objects. 21778 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA 21779 objects created from GstVaapiVideoPool. This is mostly useful to clone a 21780 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its 21781 rendering flags. 21782 217832013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21784 21785 * gst/vaapi/gstvaapivideometa.c: 21786 plugins: make it possible to clear VA objects from GstVaapiVideoMeta. 21787 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are 21788 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and 21789 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when 21790 argument is NULL. 21791 217922012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 21793 21794 * gst/vaapi/Makefile.am: 21795 * gst/vaapi/gstvaapi.c: 21796 * gst/vaapi/gstvaapidecode.c: 21797 * gst/vaapi/gstvaapidownload.c: 21798 * gst/vaapi/gstvaapipluginutil.c: 21799 * gst/vaapi/gstvaapipostproc.c: 21800 * gst/vaapi/gstvaapisink.c: 21801 * gst/vaapi/gstvaapiupload.c: 21802 * gst/vaapi/gstvaapiuploader.c: 21803 * gst/vaapi/gstvaapivideobuffer.c: 21804 * gst/vaapi/gstvaapivideoconverter_glx.c: 21805 * gst/vaapi/gstvaapivideometa.c: 21806 * gst/vaapi/gstvaapivideometa.h: 21807 plugins: initial port to GStreamer 1.0. 21808 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This 21809 is rather minimalistic so that to test the basic functionality. 21810 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter 21811 needs polishing wrt. to GStreamer 1.x functionality and the former are 21812 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities, 21813 which are yet to be implemented. 21814 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21815 218162013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21817 21818 * gst-libs/gst/vaapi/gstcompat.h: 21819 * tests/codec.c: 21820 * tests/decoder.c: 21821 * tests/simple-decoder.c: 21822 * tests/test-subpicture.c: 21823 tests: add support for GStreamer 1.0. 21824 218252012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 21826 21827 * configure.ac: 21828 * gst-libs/gst/vaapi/gstcompat.h: 21829 * gst-libs/gst/vaapi/gstvaapicontext.c: 21830 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21831 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 21832 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 21833 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 21834 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 21835 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 21836 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 21837 * gst-libs/gst/vaapi/gstvaapidisplay.c: 21838 * gst-libs/gst/vaapi/gstvaapiimage.c: 21839 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 21840 * gst-libs/gst/vaapi/gstvaapiprofile.c: 21841 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 21842 * gst-libs/gst/vaapi/gstvaapisurface.h: 21843 Add initial support for GStreamer 1.0. 21844 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi 21845 core decoding library. The changes are kept rather minimal here so that 21846 the library retains as little dependency as possible on core GStreamer 21847 functionality. 21848 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21849 218502013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21851 21852 * gst/vaapi/gstvaapisink.c: 21853 vaapisink: improve check for raw YUV format mode. 21854 Improve check for raw YUV format modes by avoiding checks against strings 21855 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case, 21856 GstBaseSink::set_caps() is called first and if VA surface format mode is 21857 used, then GstBaseSink::buffer_alloc() is not called. If the latter is 21858 called before set_caps(), then we just make a full check. This one is 21859 pretty rare though, e.g. it usually happens once for custom pipelines. 21860 218612013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21862 21863 * gst/vaapi/gstvaapipluginutil.c: 21864 plugins: don't fail if there is no overlay composition to apply. 21865 Fix gst_vaapi_apply_composition() to not fail if no overlay composition 21866 was found. i.e. return success (TRUE). This was harmless though extra 21867 debug messages are not nice. 21868 This is a regression introduced by commit 95b8659. 21869 218702013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21871 21872 * gst/vaapi/gstvaapidecode.c: 21873 * gst/vaapi/gstvaapidecode.h: 21874 vaapidecode: expose the exact set of supported HW decoders. 21875 Don't return static caps that don't mean anything for the underlying codecs 21876 that are actually supported for decoding. i.e. always allocate a VA display 21877 and retrieve the exact set of HW decoders available. That VA display may be 21878 re-used later on during negotiation through GstVideoContext "prepare-context". 21879 This fixes fallback to SW decoding if no HW decoder is available. 21880 218812013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21882 21883 * docs/reference/libs/libs-sections.txt: 21884 * gst-libs/gst/vaapi/gstvaapicontext.c: 21885 * gst-libs/gst/vaapi/gstvaapicontext.h: 21886 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21887 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 21888 decoder: drop obsolete functions. 21889 Drop the following functions that are now obsolete: 21890 - gst_vaapi_context_get_surface() 21891 - gst_vaapi_context_put_surface() 21892 - gst_vaapi_context_find_surface_by_id() 21893 - gst_vaapi_surface_proxy_new() 21894 - gst_vaapi_surface_proxy_get_context() 21895 - gst_vaapi_surface_proxy_set_context() 21896 - gst_vaapi_surface_proxy_set_surface() 21897 This is an API change. 21898 218992013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21900 21901 * gst-libs/gst/vaapi/gstvaapidecoder.c: 21902 decoder: delegate surface size check to VA context reset. 21903 Now that the surface pool is reference counted in the surface proxy wrapper, 21904 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context(). 21905 Besides, this check is already performed in gst_vaapi_context_reset_full(). 21906 219072013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21908 21909 * docs/reference/libs/libs-sections.txt: 21910 * gst-libs/gst/vaapi/gstvaapicontext.c: 21911 * gst-libs/gst/vaapi/gstvaapicontext.h: 21912 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 21913 * gst-libs/gst/vaapi/gstvaapisurface.h: 21914 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 21915 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 21916 decoder: simplify acquisition/release of spare surface. 21917 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface 21918 proxy from the context surface pool. This change also makes sure to retain 21919 the parent surface pool in the proxy. 21920 Besides, it was also totally useless to attach/detach parent context to 21921 VA surface each time we acquire/release it. Since the whole context owns 21922 all associated VA surfaces, we can mark this as such only once and for all. 21923 219242013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21925 21926 * configure.ac: 21927 Bump version for development. 21928 219292013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21930 21931 * NEWS: 21932 * configure.ac: 21933 0.5.2. 21934 219352013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21936 21937 * NEWS: 21938 NEWS: updates. 21939 219402013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21941 21942 * gst/vaapi/gstvaapipluginutil.c: 21943 * gst/vaapi/gstvaapisink.c: 21944 plugins: fix usage of gst_vaapi_reply_to_query(). 21945 Make gst_vaapi_reply_to_query() first check whether the query argument 21946 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM. 21947 Then, make sure vaapisink propagates the query to the parent class if 21948 it is not a video-context query. 21949 219502013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21951 21952 * gst/vaapi/gstvaapivideobuffer.c: 21953 * gst/vaapi/gstvaapivideobuffer.h: 21954 plugins: streamline video buffers. 21955 Add new gst_vaapi_video_buffer_new() helper function that allocates a video 21956 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function 21957 gst_vaapi_video_buffer_get_meta(). 21958 219592013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21960 21961 * docs/reference/libs/libs-sections.txt: 21962 * gst-libs/gst/vaapi/Makefile.am: 21963 * gst/vaapi/Makefile.am: 21964 * gst/vaapi/gstvaapidecode.c: 21965 * gst/vaapi/gstvaapidownload.c: 21966 * gst/vaapi/gstvaapipostproc.c: 21967 * gst/vaapi/gstvaapisink.c: 21968 * gst/vaapi/gstvaapiupload.c: 21969 * gst/vaapi/gstvaapiuploader.c: 21970 * gst/vaapi/gstvaapivideobuffer.h: 21971 * gst/vaapi/gstvaapivideoconverter_glx.c: 21972 * gst/vaapi/gstvaapivideometa.c: 21973 * gst/vaapi/gstvaapivideometa.h: 21974 plugins: integrate GstVaapiVideoMeta from libgstvaapi. 21975 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the 21976 actual plugin elements. That's only useful there. Also inline reference 21977 counting code from GstVaapiMiniObject. 21978 219792013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21980 21981 * gst/vaapi/Makefile.am: 21982 * gst/vaapi/gstvaapidecode.c: 21983 * gst/vaapi/gstvaapidownload.c: 21984 * gst/vaapi/gstvaapipluginbuffer.c: 21985 * gst/vaapi/gstvaapipluginbuffer.h: 21986 * gst/vaapi/gstvaapipostproc.c: 21987 * gst/vaapi/gstvaapiupload.c: 21988 * gst/vaapi/gstvaapiuploader.c: 21989 * gst/vaapi/gstvaapivideobuffer.c: 21990 * gst/vaapi/gstvaapivideobuffer.h: 21991 plugins: drop gstvaapipluginbuffer.[ch] helper files. 21992 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch] 21993 to gstvaapivideobuffer.[ch], and drop the obsolete files. 21994 219952013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 21996 21997 * docs/reference/libs/libs-sections.txt: 21998 * docs/reference/libs/libs.core.types: 21999 * gst-libs/gst/vaapi/Makefile.am: 22000 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 22001 * gst/vaapi/Makefile.am: 22002 * gst/vaapi/gstvaapidownload.h: 22003 * gst/vaapi/gstvaapipluginbuffer.c: 22004 * gst/vaapi/gstvaapipostproc.h: 22005 * gst/vaapi/gstvaapivideobuffer.c: 22006 * gst/vaapi/gstvaapivideobuffer.h: 22007 * gst/vaapi/gstvaapivideoconverter_glx.h: 22008 plugins: integrate GstVaapiVideoBuffer from libgstvaapi. 22009 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the 22010 actual plugin elements. That's only useful there. 22011 220122013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22013 22014 * gst/vaapi/gstvaapipluginutil.c: 22015 * gst/vaapi/gstvaapipluginutil.h: 22016 * gst/vaapi/gstvaapisink.c: 22017 * gst/vaapi/gstvaapivideoconverter_glx.c: 22018 plugins: use common helper function to apply compositions. 22019 Use common gst_vaapi_apply_composition() helper function to apply compositions 22020 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX. 22021 220222013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22023 22024 * gst-libs/gst/vaapi/Makefile.am: 22025 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 22026 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: 22027 * gst/vaapi/Makefile.am: 22028 * gst/vaapi/gstvaapipluginbuffer.c: 22029 * gst/vaapi/gstvaapivideoconverter_glx.c: 22030 * gst/vaapi/gstvaapivideoconverter_glx.h: 22031 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi. 22032 Make sure libgstvaapi core decoding library doesn't include un-needed 22033 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead. 22034 Besides, even if the vaapisink element is not used, we are bound to have 22035 a correctly populated GstSurfaceBuffer from vaapidecode. 22036 Also clean-up the file along the way. 22037 220382013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22039 22040 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22041 vc1: fix use of possibly uninitialized variable. 22042 In decode_codec_data(), force initialization of format to zero so that 22043 we can catch up cases where codec-data has neither "format" nor "wmvversion" 22044 fields, thus making it possible to gracefully fail in this case. 22045 220462013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22047 22048 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 22049 jpeg: propagate buffer data as a const guchar * pointer (cosmetics). 22050 220512013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22052 22053 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22054 * gst-libs/gst/vaapi/gstvaapidecoder.h: 22055 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 22056 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 22057 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 22058 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22059 decoder: sanitize codec-data decoding. 22060 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode 22061 codec-data in the decoder sub-class. Provide a common shared helper 22062 function to do the actual work and delegating further to the sub-class. 22063 220642013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22065 22066 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 22067 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 22068 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 22069 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 22070 decoder: get rid of GstVaapiDecoderUnit::buffer field. 22071 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally 22072 useless nowadays as creating sub-buffers doesn't bring any value. It 22073 actually means more memory allocations. We can't do without that in 22074 JPEG and MPEG-4:2 decoders. 22075 220762013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22077 22078 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 22079 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 22080 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22081 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 22082 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22083 decoder: sanitize uses of codec frame input buffer (cosmetics). 22084 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple 22085 "buffer" variable. 22086 220872013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22088 22089 * gst/vaapi/gstvaapisink.c: 22090 vaapisink: add helper function to apply a composition buffer. 22091 Simplify application of a composition buffer to a GstVaapiSurface, and 22092 all its peers, until that function is eventually promoted to libgstvaapi. 22093 220942013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22095 22096 * gst/vaapi/gstvaapisink.c: 22097 vaapisink: fix support for raw YUV buffers. 22098 If the raw YUV buffer was created from vaapisink, through the buffer_alloc() 22099 hook, then it will have a valid GstVaapiVideoMeta object attached to it. 22100 However, we previously assumed in that case that it was a "native" VA buffer, 22101 thus not calling into GstVaapiUploader::process(). 22102 221032013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22104 22105 * gst-libs/gst/vaapi/gstcompat.h: 22106 * gst/vaapi/gstvaapidecode.c: 22107 * gst/vaapi/gstvaapidownload.c: 22108 * gst/vaapi/gstvaapipostproc.c: 22109 * gst/vaapi/gstvaapisink.c: 22110 * gst/vaapi/gstvaapiupload.c: 22111 plugins: use modern GstElement metadata information. 22112 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which 22113 basically is the same as gst_element_class_set_details_simple() in 22114 GStreamer 0.10 context. 22115 221162013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22117 22118 * gst/vaapi/gstvaapidecode.c: 22119 * gst/vaapi/gstvaapidownload.c: 22120 * gst/vaapi/gstvaapipostproc.c: 22121 * gst/vaapi/gstvaapisink.c: 22122 * gst/vaapi/gstvaapiupload.c: 22123 plugins: move up interfaces (cosmetics). 22124 Move GstImplementsInterface and GstVideoContext support functions up 22125 so that to keep a clear separation between the plugin element and its 22126 interface hooks. 22127 221282013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22129 22130 * gst/vaapi/gstvaapisink.c: 22131 * gst/vaapi/gstvaapiuploader.c: 22132 plugins: upgrade to newer APIs (GstVideoInfo based helpers). 22133 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible. 22134 Also use the newly added gst_vaapi_image_format_from_structure() helper 22135 in GstVaapiUploader::ensure_allowed_caps(). 22136 221372013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22138 22139 * gst/vaapi/gstvaapipluginbuffer.c: 22140 plugins: fix creation of video buffer from another source buffer. 22141 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source 22142 buffer video meta since it would be unreference'd from the get_buffer() 22143 helper function. For other cases, we still use (steal) the newly created 22144 video meta. 22145 221462013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22147 22148 * gst/vaapi/gstvaapipluginbuffer.c: 22149 * gst/vaapi/gstvaapipluginutil.c: 22150 plugins: include "sysdeps.h" header instead of "config.h". 22151 221522013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22153 22154 * gst-libs/gst/vaapi/gstcompat.h: 22155 * tests/codec.c: 22156 tests: modernize GstTypeFind functions. 22157 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and 22158 exactly correspond to the expected behaviour. 22159 221602013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22161 22162 * tests/image.c: 22163 * tests/image.h: 22164 * tests/test-decode.c: 22165 * tests/test-display.c: 22166 * tests/test-h264.c: 22167 * tests/test-h264.h: 22168 * tests/test-jpeg.c: 22169 * tests/test-jpeg.h: 22170 * tests/test-mpeg2.c: 22171 * tests/test-mpeg2.h: 22172 * tests/test-mpeg4.c: 22173 * tests/test-mpeg4.h: 22174 * tests/test-textures.c: 22175 * tests/test-vc1.c: 22176 * tests/test-vc1.h: 22177 * tests/test-windows.c: 22178 tests: fix license templates. 22179 221802013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22181 22182 * tests/test-display.c: 22183 tests: use gst_vaapi_image_format_from_structure() in test-display. 22184 Use gst_vaapi_image_format_from_structure() helper in test-display and 22185 then extract a VAImageFormat from it instead of relying on GstCaps for 22186 YUV and RGB formats. 22187 221882013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22189 22190 * tests/codec.c: 22191 * tests/decoder.c: 22192 * tests/output.c: 22193 * tests/test-decode.c: 22194 * tests/test-display.c: 22195 * tests/test-subpicture.c: 22196 * tests/test-textures.c: 22197 * tests/test-windows.c: 22198 tests: include "sysdeps.h" header instead of "config.h". 22199 222002013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22201 22202 * gst-libs/gst/vaapi/gstcompat.h: 22203 * gst-libs/gst/vaapi/gstvaapicontext.c: 22204 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 22205 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw(). 22206 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper 22207 function with GStreamer 0.10 compatible semantics, or that tries to 22208 approach the current meaning. Basically, this is also just about moving 22209 the helper to gstcompat.h. 22210 222112013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22212 22213 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 22214 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 22215 image: add gst_vaapi_image_format_from_structure() helper. 22216 Add helper function to convert video formats from a GstStructure to a 22217 plain GstVaapiImageFormat. 22218 222192013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22220 22221 * gst-libs/gst/vaapi/Makefile.am: 22222 * gst-libs/gst/vaapi/gstcompat.h: 22223 * gst-libs/gst/vaapi/sysdeps.h: 22224 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h". 22225 222262013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22227 22228 * gst-libs/gst/vaapi/sysdeps.h: 22229 sysdeps: add more standard includes by default. 22230 222312013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22232 22233 * configure.ac: 22234 configure: improve GStreamer API version checks. 22235 222362013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22237 22238 * configure.ac: 22239 * debian.upstream/Makefile.am: 22240 * debian.upstream/changelog.in: 22241 * debian.upstream/control.in: 22242 * debian.upstream/gstreamer-vaapi-doc.install.in: 22243 * debian.upstream/libgstvaapi-dev.install.in: 22244 * debian.upstream/libgstvaapi-drm.install.in: 22245 * debian.upstream/libgstvaapi-glx.install.in: 22246 * debian.upstream/libgstvaapi-wayland.install.in: 22247 * debian.upstream/libgstvaapi-x11.install.in: 22248 * debian.upstream/libgstvaapi.install.in: 22249 * docs/reference/libs/Makefile.am: 22250 * docs/reference/libs/libs-docs.xml.in: 22251 * docs/reference/plugins/Makefile.am: 22252 * docs/reference/plugins/plugins-docs.xml.in: 22253 * gst-libs/gst/vaapi/Makefile.am: 22254 * gst/vaapi/Makefile.am: 22255 * pkgconfig/Makefile.am: 22256 * pkgconfig/gstreamer-vaapi-drm.pc.in: 22257 * pkgconfig/gstreamer-vaapi-glx.pc.in: 22258 * pkgconfig/gstreamer-vaapi-wayland.pc.in: 22259 * pkgconfig/gstreamer-vaapi-x11.pc.in: 22260 * pkgconfig/gstreamer-vaapi.pc.in: 22261 * tests/Makefile.am: 22262 configure: rename GST_MAJORMINOR to GST_API_VERSION. 22263 222642013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22265 22266 * configure.ac: 22267 configure: improve check for H.264 codecparser. 22268 222692013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de> 22270 22271 * gst/vaapi/gstvaapiuploader.c: 22272 vaapiupload: fix illegal write in ensure_image(). 22273 Fix ensure_image() to only zero-initialize the first line of each plane. 22274 Properly initializing each plane to their full vertical resolution would 22275 require to actually compute it based on the image format. 22276 In particular, for NV12 images, the UV plane has half vertical resolution 22277 vs. the Y plane. So using the full image height to initialize the UV plane 22278 will obviously lead to a buffer overflow. Likewise for other YUV format. 22279 Since ensure_image() is only a helper function to initialize something, 22280 and not necessarily the whole thing, it is fine to initializ the first 22281 line only. Besides, the target surface is not rendered either. 22282 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22283 222842013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com> 22285 22286 * gst-libs/gst/codecparsers/Makefile.am: 22287 * gst-libs/gst/video/Makefile.am: 22288 build: fix compiling of local GstVideoDecoder and codecparsers. 22289 Generated source files were missing a dependency on the complete set of 22290 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h 22291 to build and almost every codec parser source depends on parserutils.h. 22292 https://bugs.freedesktop.org/show_bug.cgi?id=59575 22293 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com> 22294 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22295 222962013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22297 22298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 22299 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table(). 22300 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if 22301 there is no pred_weight_table() that was parsed. 22302 This is a workaround for the VA intel-driver on Ivy Bridge. 22303 223042013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22305 22306 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 22307 h264: use new profile definitions from codecparsers. 22308 223092013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22310 22311 * ext/codecparsers: 22312 codecparsers: update to gst-vaapi-branch commit 500bc02. 22313 500bc02 h264: add profile enums 22314 223152013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22316 22317 * NEWS: 22318 NEWS: updates. 22319 223202013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22321 22322 * ext/codecparsers: 22323 codecparsers: update to gst-vaapi-branch commit 31b1c57. 22324 8957fb7 mpeg2: add helpers to convert quantization matrices 22325 07c4034 mpeg2: store quantization matrices in zigzag scan order 22326 223272013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22328 22329 * tests/simple-decoder.c: 22330 tests: simple-decoder: fix build on older platforms. 22331 Make simple-decoder build and execute correctly on older platforms, 22332 and more precisely older versions of glib. 22333 223342013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22335 22336 * gst-libs/gst/vaapi/glibcompat.h: 22337 glibcompat: add replacement for g_async_queue_timeout_pop(). 22338 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as 22339 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for 22340 new data to arrive in the queue. 22341 223422013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22343 22344 * gst-libs/gst/vaapi/glibcompat.h: 22345 glibcompat: add replacement for g_cond_wait(). 22346 223472013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22348 22349 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22350 mpeg2: fix decoding of 4K videos. 22351 Account for slice_vertical_position_extension when vertical_size > 2800. 22352 223532013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22354 22355 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22356 mpeg2: fix decoding of sequence_end(). 22357 There shall be only one place to call decode_current_picture(), and this 22358 is in the end_frame() hook. The EOS unit is processed after end_frame() 22359 so this means we cannot have a valid picture to decode/output at this 22360 point. 22361 223622013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22363 22364 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22365 mpeg2: improve robustness when packets are missing. 22366 Improve robustness when some expected packets where not received yet 22367 or that were not correctly decoded. For example, don't try to decode 22368 a picture if there was no valid sequence or picture headers. 22369 223702013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22371 22372 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22373 decoder: handle decode-only frames in raw API mode. 22374 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid 22375 surface proxy, i.e. with a valid VA surface. This means that any frame 22376 marked as decode-only is simply skipped. 22377 223782013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22379 22380 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22381 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 22382 decoder: allow frames to be dropped. 22383 If the decoder was not able to decode a frame because insufficient 22384 information was available, e.g. missing sequence or picture header, 22385 then allow the frame to be gracefully dropped without generating 22386 any error. 22387 It is also possible that a frame is not meant to be displayed but 22388 only used as a reference, so dropping that frame is also a valid 22389 operation since GstVideoDecoder base class has extra references to 22390 that GstVideoCodecFrame that needs to be released. 22391 223922013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22393 22394 * gst/vaapi/gstvaapidecode.c: 22395 vaapidecode: handle decode-only frames. 22396 Decode-only frames may not have a valid surface proxy. So, simply discard 22397 them gracefully, i.e. don't create meta data information. GstVideoDecoder 22398 base class will properly handle this case and won't try to push any buffer 22399 to downstream elements. 22400 224012013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 22402 22403 * gst/vaapi/gstvaapidecode.c: 22404 vaapidecode: add support for post-seek semantics reset. 22405 Implement GstVideoDecoder::reset() as a destruction of the VA decoder 22406 and the creation of a new VA decoder. 22407 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22408 224092013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22410 22411 * configure.ac: 22412 Bump version for development. 22413 224142013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22415 22416 * NEWS: 22417 * configure.ac: 22418 0.5.1. 22419 224202013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 22421 22422 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22423 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush. 22424 224252013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 22426 22427 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: 22428 decoder: fix documentation for GstVaapiDecoderFrame. 22429 Drop superfluous reference to prev_slice member. 22430 224312013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22432 22433 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22434 decoder: assume current frame is complete at end-of-stream. 22435 Assume we got a complete frame when the end-of-stream is reached and that 22436 the current codec frame contains at least one slice data unit. 22437 224382013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22439 22440 * NEWS: 22441 * README: 22442 * debian.upstream/copyright: 22443 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 22444 * gst-libs/gst/vaapi/gstvaapicontext.c: 22445 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22446 * gst-libs/gst/vaapi/gstvaapidecoder.h: 22447 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 22448 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 22449 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: 22450 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: 22451 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 22452 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 22453 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22454 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 22455 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 22456 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 22457 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 22458 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 22459 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 22460 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22461 * gst-libs/gst/vaapi/gstvaapidisplay.c: 22462 * gst-libs/gst/vaapi/gstvaapidisplay.h: 22463 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 22464 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 22465 * gst-libs/gst/vaapi/gstvaapiprofile.h: 22466 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 22467 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 22468 * gst-libs/gst/vaapi/gstvaapisurface.c: 22469 * gst-libs/gst/vaapi/gstvaapiutils.c: 22470 * gst-libs/gst/vaapi/gstvaapiutils.h: 22471 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 22472 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 22473 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 22474 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 22475 * gst-libs/gst/vaapi/sysdeps.h: 22476 * gst/vaapi/gstvaapidecode.c: 22477 * gst/vaapi/gstvaapidownload.c: 22478 * gst/vaapi/gstvaapipluginbuffer.c: 22479 * gst/vaapi/gstvaapipluginbuffer.h: 22480 * gst/vaapi/gstvaapipostproc.c: 22481 * gst/vaapi/gstvaapisink.c: 22482 * gst/vaapi/gstvaapiupload.c: 22483 * gst/vaapi/gstvaapiuploader.c: 22484 * tests/output.c: 22485 * tests/test-decode.c: 22486 * tests/test-subpicture.c: 22487 legal: fix year for some copyright notices (2013). 22488 224892013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22490 22491 * gst-libs/gst/vaapi/gstvaapicontext.h: 22492 * gst-libs/gst/vaapi/gstvaapidecoder.h: 22493 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22494 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 22495 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 22496 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 22497 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22498 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 22499 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 22500 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 22501 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 22502 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 22503 * gst-libs/gst/vaapi/gstvaapisurface.c: 22504 * gst-libs/gst/vaapi/gstvaapisurface.h: 22505 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 22506 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 22507 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 22508 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 22509 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 22510 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: 22511 * gst/vaapi/gstvaapidecode.h: 22512 * gst/vaapi/gstvaapisink.h: 22513 * tests/test-subpicture.c: 22514 legal: fix year for some copyright notices (2012). 22515 225162013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22517 22518 * gst-libs/gst/vaapi/gstvaapicompat.h: 22519 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 22520 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 22521 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 22522 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 22523 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 22524 * gst-libs/gst/vaapi/gstvaapiobject.c: 22525 * gst-libs/gst/vaapi/gstvaapiobject.h: 22526 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 22527 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 22528 * gst-libs/gst/vaapi/gstvaapiparamspecs.h: 22529 * gst-libs/gst/vaapi/gstvaapiprofile.c: 22530 * gst-libs/gst/vaapi/gstvaapiprofile.h: 22531 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 22532 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 22533 * gst-libs/gst/vaapi/gstvaapitexture.c: 22534 * gst-libs/gst/vaapi/gstvaapitexture.h: 22535 * gst-libs/gst/vaapi/gstvaapitypes.h: 22536 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 22537 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 22538 * gst-libs/gst/vaapi/gstvaapivalue.c: 22539 * gst-libs/gst/vaapi/gstvaapivalue.h: 22540 * gst-libs/gst/vaapi/gstvaapivideopool.c: 22541 * gst-libs/gst/vaapi/gstvaapivideopool.h: 22542 * gst-libs/gst/vaapi/gstvaapiwindow.h: 22543 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 22544 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 22545 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 22546 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 22547 * tests/test-display.c: 22548 * tests/test-surfaces.c: 22549 * tests/test-windows.c: 22550 legal: add Intel copyright on modified files. 22551 225522013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22553 22554 * NEWS: 22555 NEWS: updates. 22556 225572013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22558 22559 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 22560 wayland: use a local event queue to avoid lock contention. 22561 This improves performance when rendering several surfaces from within 22562 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink. 22563 225642013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22565 22566 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 22567 wayland: fix thread-safe issues. 22568 The Wayland API is not fully thread-safe and client applications shall 22569 perform locking themselves on key functions. Besides, make sure to 22570 release the lock if the _render() function fails. 22571 225722013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22573 22574 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 22575 wayland: really wait until the pending redraw completed. 22576 Introduce gst_vaapi_window_wayland_sync() helper function to wait for 22577 the completion of the redraw request. Use it in _render() function to 22578 actually block until the previous draw request is completed. 22579 225802013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22581 22582 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 22583 wayland: fix frame_redraw callback. 22584 The redraw callback needs to be attached to the surface prior to the 22585 commit. Otherwise, the callback notifies the next surface repaint, 22586 which is not the desired behaviour. i.e. we want to be notified for 22587 the surface we have just filled. 22588 Another isse was the redraw_pending was reset before the actual completion 22589 of the frame redraw callback function, thus causing concurrency issues. 22590 e.g. the callback could have been called again, but with a NULL buffer. 22591 225922013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22593 22594 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 22595 wayland: fix display sharing. 22596 When the Wayland display is shared, we still have to create our own local 22597 shell and compositor objects, since they are not propagated from the cache. 22598 Likewise, we also need to determine the display size or vaapisink would 22599 fail to account for the display aspect ratio, and will try to create a 0x0 22600 window. 22601 226022013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22603 22604 * ext/codecparsers: 22605 codecparsers: update to gst-vaapi-branch commit 21a098e. 22606 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual] 22607 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6) 22608 226092013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22610 22611 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22612 vc1: handle frames with multiple slices. 22613 226142013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22615 22616 * ext/codecparsers: 22617 codecparsers: update to gst-vaapi-branch commit 3fba492. 22618 3fba492 vc1: add API to parse slice headers 22619 226202013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22621 22622 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22623 vc1: handle CLOSED_ENTRY. 22624 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point 22625 lack a reference anchor picture, these B pictures shall be discarded. 22626 https://bugs.freedesktop.org/show_bug.cgi?id=59505 22627 226282013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22629 22630 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22631 vc1: cope with latest codecparser changes. 22632 Fix build with newer VC-1 codecparser where dqsbedge was renamed to 22633 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on 22634 the actual value of DQPROFILE. 22635 226362013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22637 22638 * ext/codecparsers: 22639 codecparsers: update to gst-vaapi-branch commit 3d2c67c. 22640 3d2c67c vc1: simplify GstVC1VopDquant structure 22641 226422013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22643 22644 * ext/codecparsers: 22645 codecparsers: update to gst-vaapi-branch commit 5d33da8. 22646 5d33da8 vc1: fix bitplanes decoding 22647 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2 22648 0b13d2b vc1: fix calculation of ALTPQUANT 22649 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT 22650 226512013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22652 22653 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22654 vc1: fix size of encapsulated BDU. 22655 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents 22656 the size of the BDU data, starting from offset, i.e. after any start 22657 code is parsed. 22658 This fixes a buffer overflow during the unescaping process. 22659 226602013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com> 22661 22662 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22663 vc1: fix decoding of WMV3 videos in AVI format. 22664 The AVI demuxer (avidemux) does not set a proper "format" attribute 22665 to the generated caps. So, try to recover the video codec format from 22666 the "wmvversion" property instead. 22667 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22668 226692013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22670 22671 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22672 vc1: review and report errors accordingly. 22673 Use GST_ERROR() to report real errors instead of hiding them into 22674 GST_DEBUG(). 22675 226762013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22677 22678 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22679 vc1: don't create GstBuffers for all decoder units. 22680 Don't create temporary GstBuffers for all decoder units, even if they 22681 are lightweight "sub-buffers", since it is not really necessary to keep 22682 the buffer data around. 22683 226842013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22685 22686 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22687 vc1: implement flush() hook. 22688 Make it a simple DPB flush. 22689 226902013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22691 22692 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22693 vc1: implement {start,end}_frame() hooks. 22694 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so 22695 that to create new VA context earlier and submit VA pictures to the 22696 HW for decoding as soon as possible. i.e. don't wait for the next 22697 frame to start decoding the previous one. 22698 226992013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22700 22701 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22702 vc1: fix next POC for new sequence layers. 22703 Fix next POC when a new sequence layer is reached. At this point, we 22704 need to reset any previous reference picture, i.e. non B-frame. 22705 227062012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 22707 22708 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22709 vc1: port to common GstVaapiDpb interface. 22710 Use GstVaapiDpb interface instead of maintaining our own prev and next 22711 picture pointers. While doing so, try to derive a sensible POC value. 22712 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22713 227142013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22715 22716 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 22717 vc1: fix decode_sequence_end() to return success, not EOS. 22718 227192013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22720 22721 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22722 decoder: simplify gst_vaapi_decoder_get_surface(). 22723 Avoid extraenous branches, i.e. immediately return with success once we 22724 have a decoded frame available. 22725 227262013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22727 22728 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22729 decoder: optimize and clean decode_step() up. 22730 Avoid usage of goto. Simplify decode_step() process to first accumulate all 22731 pending buffers into the GstAdapter, and then parse and decode units from 22732 that input adapter. Stop the process once a frame is fully decoded or an 22733 error occurred. 22734 227352013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22736 22737 * gst-libs/gst/vaapi/gstvaapidisplay.c: 22738 display: move "vaapi" debug init to libgstvaapi_init_once(). 22739 227402013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22741 22742 * configure.ac: 22743 * gst-libs/gst/vaapi/Makefile.am: 22744 * gst-libs/gst/vaapi/gstvaapidisplay.c: 22745 * gst-libs/gst/vaapi/gstvaapiversion.h.in: 22746 display: dump gstreamer-vaapi version for debugging purposes. 22747 227482013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22749 22750 * tests/Makefile.am: 22751 tests: simple-decoder: fix build with built-in videoutils. 22752 Fix build with built-in videoutils, i.e. when system GStreamer installation 22753 does not know about GstVideoDecoder API. 22754 227552013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22756 22757 * tests/simple-decoder.c: 22758 tests: simple-decoder: flush decoded frames at EOS. 22759 Flush the remaining decoded frames when an end-of-stream is reached. 22760 227612013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22762 22763 * tests/simple-decoder.c: 22764 tests: simple-decoder: drop use of GstVaapiVideoMeta. 22765 Don't use GstVaapiVideoMeta since that object is not guaranteed to live 22766 in libgstvaapi forever. Rather, that'd move to plugin elements at some 22767 point. 22768 227692013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22770 22771 * tests/simple-decoder.c: 22772 tests: simple-decoder: add benchmark mode. 22773 Add --benchmark option to enable benchmark mode where rendering is not 22774 synchronized with presentation timestamps of the decoded surfaces. 22775 227762013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22777 22778 * tests/Makefile.am: 22779 * tests/simple-decoder.c: 22780 tests: simple-decoder: honour framerate from the bitstream. 22781 Try to honour the framerate from the bitstream, or cap the playback to 22782 60 fps by default. 22783 227842013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22785 22786 * tests/simple-decoder.c: 22787 tests: simple-decoder: set window size to the surface dimensions. 22788 Set the window size to the decoded surface dimensions, if the user has 22789 not requested the application to run in full-screen mode. Besides, no 22790 effort is made to preserve aspect ratio or to center the video within 22791 the mapped window. 22792 227932013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22794 22795 * tests/Makefile.am: 22796 * tests/simple-decoder.c: 22797 tests: add simple decoder application. 22798 Add simple decoder application to show off decoding capabilities from 22799 raw bitstreams, for debugging or performance evaluation purposes. 22800 228012013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22802 22803 * tests/Makefile.am: 22804 * tests/codec.c: 22805 * tests/codec.h: 22806 tests: add codec helper utils. 22807 Add helper functions to determine the codec type from a specific file 22808 or utility functions to convert from codec type to GstCaps or from 22809 codec name to codec type. 22810 228112013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22812 22813 * tests/output.c: 22814 tests: allow fullscreen mode. 22815 Add new --fullscreen|-f option to create new windows in fullscreen mode. 22816 228172013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22818 22819 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 22820 h264: implement GstVaapiDecoder::flush() as a DPB flush. 22821 228222013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22823 22824 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 22825 h264: handle end-of-stream NALU. 22826 Handle <end-of-stream> NAL unit to actually flush any pending picture 22827 from the DPB. 22828 228292013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22830 22831 * gst/vaapi/gstvaapidecode.c: 22832 vaapidecode: handle EOS events. 22833 Flush all decoded frames to downstream when EOS is received. This is 22834 performed by implementing GstVideoDecoder::finish() hook. 22835 228362013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22837 22838 * gst/vaapi/gstvaapidecode.c: 22839 vaapidecode: split gvd_handle_frame() into decode/push frames. 22840 Split GstVideoDecoder::handle_frame() implementation into two functions: 22841 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one 22842 for purging all decoded frames and submit them downstream. 22843 228442013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22845 22846 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22847 * gst-libs/gst/vaapi/gstvaapidecoder.h: 22848 decoder: add GstVaapiDecoder::flush() hook. 22849 228502013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22851 22852 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22853 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 22854 decoder: fix check for end-of-stream in raw API mode. 22855 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM 22856 if the end-of-stream was already reached at the previous iteration. 22857 228582013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22859 22860 * gst-libs/gst/vaapi/gstvaapidecoder.c: 22861 decoder: make decode_step() return once the frame is decoded. 22862 Make sure we always have a free surface left to use for decoding the 22863 current frame. This means that decode_step() has to return once a frame 22864 gets decoded. If the current adapter contains more buffers with valid 22865 frames, they will get parsed and decoded on subsequent iterations. 22866 228672013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22868 22869 * ext/codecparsers: 22870 codecparsers: update to gst-vaapi-branch commit b47983a. 22871 8840c2d h264: zero-initialize SPS VUI parameters 22872 228732013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22874 22875 * configure.ac: 22876 Bump version for development. 22877 228782013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22879 22880 * NEWS: 22881 * configure.ac: 22882 0.5.0. 22883 228842013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22885 22886 * docs/reference/libs/libs-docs.xml.in: 22887 * docs/reference/libs/libs-sections.txt: 22888 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 22889 * gst-libs/gst/vaapi/gstvaapidisplay.c: 22890 * gst-libs/gst/vaapi/gstvaapiprofile.h: 22891 docs: expose new interfaces. 22892 228932013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22894 22895 * NEWS: 22896 NEWS: updates. 22897 228982013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22899 22900 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 22901 dpb: cosmetics (clean-ups). 22902 229032013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22904 22905 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 22906 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 22907 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22908 dpb: port to GstVaapiMiniObject. 22909 229102013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22911 22912 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 22913 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 22914 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22915 dpb: drop GstVaapiDpb2 interface, keep only one class. 22916 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references() 22917 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB 22918 around the specified picture POC. 22919 229202012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 22921 22922 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 22923 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 22924 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 22925 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2. 22926 Move GstVaapiDpbMpeg2 API to a more generic version that could also be 22927 useful to other decoders that require 2 reference pictures, e.g. VC-1. 22928 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22929 229302013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22931 22932 * configure.ac: 22933 Bump version for pre-release. 22934 229352013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22936 22937 * NEWS: 22938 NEWS: updates. 22939 229402012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de> 22941 22942 * configure.ac: 22943 * gst-libs/gst/vaapi/gstvaapicontext.c: 22944 * gst-libs/gst/vaapi/gstvaapiutils.c: 22945 * gst-libs/gst/vaapi/sysdeps.h: 22946 * tests/test-subpicture.c: 22947 overlay: fix build without advanced GstVideoOverlayFormatFlags. 22948 Check for global-alpha support in GstVideoOverlayComposition API. 22949 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22950 229512013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22952 22953 * tests/test-subpicture.c: 22954 tests: add support for global-alpha subpictures. 22955 Add --global-alpha option to test-subpicture. 22956 229572013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22958 22959 * tests/Makefile.am: 22960 * tests/test-subpicture.c: 22961 tests: use GstVideoOverlayComposition API for subpicture test. 22962 229632013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22964 22965 * tests/Makefile.am: 22966 * tests/test-subpicture.c: 22967 tests: use common decoder helpers for subpicture test. 22968 Use common decoder helpers for subpicture test, thus allowing to decode 22969 sample images in an alternate format. 22970 229712013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22972 22973 * tests/Makefile.am: 22974 * tests/decoder.c: 22975 * tests/decoder.h: 22976 * tests/test-decode.c: 22977 tests: add decoder helpers. 22978 229792013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22980 22981 * gst-libs/gst/vaapi/gstvaapicontext.c: 22982 overlay: fix ordering of composition layers. 22983 Make sure to maintain the association order of composition layers when 22984 GstVideoOverlayRectangle objects are kept around (cached). 22985 229862012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de> 22987 22988 * gst-libs/gst/vaapi/gstvaapicontext.c: 22989 overlay: fix support for global-alpha. 22990 Fix support for global-alpha subpictures. The previous changes brought 22991 the ability to check for GstVideoOverlayRectangle changes by comparing 22992 the underlying pixel buffer pointers. If sequence number and pixel data 22993 did not change, then this is an indication that only the global-alpha 22994 value changed. Now, try to update the underlying VA subpicture global-alpha 22995 value. 22996 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22997 229982013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 22999 23000 * gst-libs/gst/vaapi/gstvaapicontext.c: 23001 overlay: detect render-rect changes. 23002 Don't re-upload VA subpicture if only the render rectangle changed. 23003 Rather deassociate the subpicture and re-associate it with the new 23004 render rectangle. 23005 230062013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23007 23008 * gst-libs/gst/vaapi/gstvaapicontext.c: 23009 overlay: fix check for pixels buffer change. 23010 A GstVideoOverlayRectangle is created whenever the underlying pixels data 23011 change. However, when global-alpha is supported, it is possible to re-use 23012 the same GstVideoOverlayRectangle but with a change to the global-alpha 23013 value. This process causes a change of sequence number, so we can no longer 23014 check for that. 23015 Still, if sequence numbers did not change, then there was no change in 23016 global-alpha either. So, we need a way to compare the underlying GstBuffer 23017 pointers. There is no API to retrieve the original pixels buffer from 23018 a GstVideoOverlayRectangle. So, we use the following heuristics: 23019 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same 23020 format flags from which the GstVideoOverlayRectangle was created. This 23021 will work if there was no prior consumer of the GstVideoOverlayRectangle 23022 with alternate (non-"native") format flags. 23023 2. In overlay_rectangle_has_changed_pixels(), we have to use the same 23024 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but 23025 with flags that match the subpicture. This is needed to cope with 23026 platforms that don't support global-alpha in HW, so the gst-video 23027 layer takes care of that and fixes this up with a possibly new 23028 GstBuffer, and hence pixels data (or) in-place by caching the current 23029 global-alpha value applied. So we have to determine the rectangle 23030 was previously used, based on what previous flags were used to 23031 retrieve the ARGB pixels buffer. 23032 230332013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23034 23035 * gst-libs/gst/vaapi/gstvaapicontext.c: 23036 overlay: optimize cache at the GstVideoOverlayRectangle level. 23037 We previously assumed that an overlay composition changed if the number 23038 of overlay rectangles in there actually changed, or that the rectangle 23039 was updated, and thus its seqnum was also updated. 23040 Now, we can cope with cases where the GstVideoOverlayComposition grew 23041 by one or a few more overlay rectangles, and the initial overlay rectangles 23042 are kept as is. 23043 230442013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23045 23046 * gst-libs/gst/vaapi/gstvaapicontext.c: 23047 overlay: simplify caching of GstVideoOverlayComposition objects. 23048 Create the GPtrArray once in the _init() function and destroy it only 23049 in the _finalize() function. Then use overlay_clear() to remove all 23050 subpicture associations for intermediate updates, don't recreate the 23051 GPtrArray. 23052 Make GstVaapiOverlayRectangle a reference counted object. Also make 23053 sure that overlay_rectangle_new() actually creates and associates the 23054 VA subpicture. 23055 230562012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de> 23057 23058 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 23059 * gst-libs/gst/vaapi/gstvaapiutils.c: 23060 * gst-libs/gst/vaapi/gstvaapiutils.h: 23061 overlay: add support for global-alpha. 23062 Handle global-alpha from GstVideoOverlayComposition API. Likewise, 23063 the same code path could also work for premultiplied-alpha but this 23064 was not tested. 23065 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23066 230672012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de> 23068 23069 * gst-libs/gst/vaapi/gstvaapidisplay.c: 23070 * gst-libs/gst/vaapi/gstvaapidisplay.h: 23071 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 23072 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 23073 * gst-libs/gst/vaapi/gstvaapisurface.c: 23074 * tests/image.c: 23075 * tests/test-subpicture.c: 23076 subpicture: add support for global-alpha. 23077 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures 23078 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture 23079 to address this feature. 23080 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23081 230822013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23083 23084 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 23085 * gst-libs/gst/vaapi/gstvaapiutils.c: 23086 * gst-libs/gst/vaapi/gstvaapiutils.h: 23087 subpicture: add premultiplied-alpha and global-alpha feature flags. 23088 Add premultiplied-alpha and global-alpha feature flags, along with converters 23089 between VA-API and gstreamer-vaapi definitions. Another round of helpers is 23090 also necessary for GstVideoOverlayComposition API. 23091 230922013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23093 23094 * gst-libs/gst/vaapi/gstvaapidisplay.c: 23095 display: allow image/subpicture formats with additional flags. 23096 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat 23097 and any additional flags needed. Currently, all flags are set to zero. 23098 230992013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23100 23101 * gst-libs/gst/codecparsers/Makefile.am: 23102 * gst-libs/gst/video/Makefile.am: 23103 * tests/Makefile.am: 23104 libs: fix build of submodule wrappers. 23105 Make sure to build codecparsers/ and videoutils/ sources against the 23106 newly generated headers when out-of-source builds are used. 23107 231082013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23109 23110 * configure.ac: 23111 configure: fix checks for packages installed in non-standard roots. 23112 231132013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23114 23115 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 23116 decoder: fix mini object implementation on 64-bit systems. 23117 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating 23118 pointers. The latter is meant to be 32-bit only, not uintptr_t like size. 23119 Only a gsize can hold all bits of a pointer. 23120 Thanks to Ouping Zhang for spotting this error. 23121 231222013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23123 23124 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23125 mpeg2: optimize scan for the end of the frame. 23126 Heuristic: if the second start-code is available, check whether that 23127 one marks the start of a new frame because e.g. this is a sequence 23128 or picture header. This doesn't save much, since we already cache the 23129 results. 23130 231312013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23132 23133 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23134 mpeg2: optimize scan for start codes. 23135 Accelerate scan for start codes by skipping up to 3 bytes per iteration. 23136 A start code prefix is defined by the following bytes: 00 00 01. Thus, 23137 for any group of 3 bytes (xx yy zz), we have the following possible cases: 23138 1. If zz != 1, this cannot be a start code, then skip 3 bytes; 23139 2. If yy != 0, this cannot be a start code, then skip 2 bytes; 23140 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte; 23141 4. xx == 00, yy == 00, zz == 1, we have match! 23142 This algorithm requires to peek bytes from the adapter. This increases the 23143 amount of bytes copied to a temporary buffer, but this process is much faster 23144 than scanning for all the bytes and using shift/masks. So, overall, this is 23145 a win. 23146 231472013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23148 23149 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23150 mpeg2: drop useless gst_adapter_peek(). 23151 Drop useless gst_adapter_peek() since the returned buffer was not used 23152 and this could incur superfluous memcpy(). 23153 231542013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23155 23156 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23157 mpeg2: cosmetics: move parse_slice() down. 23158 231592013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23160 23161 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23162 mpeg2: avoid too many allocations of parser info objects. 23163 Move parsing back to decoding step, but keep functions separate for now. 23164 This is needed for future optimizations that may introduce some meta data 23165 for parsed info attached to codec frames. 23166 231672013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23168 23169 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 23170 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 23171 decoder: decoder units are no longer dynamically allocated objects. 23172 231732013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23174 23175 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23176 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: 23177 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: 23178 decoder: optimize pre-allocation of decoder units. 23179 Optimize pre-allocation of decoder units, thus avoiding un-necessary 23180 memory reallocations. The heuristic used is that we could have around 23181 one slice unit per macroblock line. 23182 231832013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23184 23185 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23186 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: 23187 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: 23188 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 23189 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 23190 decoder: use an array of units instead of a single-linked list. 23191 Use a GArray to hold decoder units in a frame, instead of a single-linked 23192 list. This makes 'append' calls faster, but not that much. At least, this 23193 makes things clearer. 23194 231952013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23196 23197 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23198 * gst-libs/gst/vaapi/gstvaapidecoder.h: 23199 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23200 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 23201 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23202 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 23203 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 23204 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 23205 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 23206 decoder: refactor decoder unit API. 23207 Allocate decoder unit earlier in the main parse() function and don't 23208 delegate this task to derived classes. The ultimate purpose is to get 23209 rid of dynamic allocation of decoder units. 23210 232112013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23212 23213 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23214 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit. 23215 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving 23216 from GstVaapiDecoderUnit for MPEG-2 specific parser information. 23217 232182013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23219 23220 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23221 h264: introduce parser info instead of H.264 specific decoder unit. 23222 Use a new GstVaapiParserInfoH264 data structure instead of deriving 23223 from GstVaapiDecoderUnit for H.264 specific parser information. 23224 232252013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23226 23227 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23228 h264: set default values for some header fields. 23229 The SPS, PPS and slice headers are not fully zero-initialized in the 23230 codecparsers/ library. Rather, the standard upstream behaviour is to 23231 initialize only certain syntax elements with some inferred values if 23232 they are not present in the bitstream. 23233 At the gstreamer-vaapi decoder level, we need to further initialize 23234 certain syntax elements with some sensible default values so that to 23235 not complicate VA drivers that just pass those verbatim to the HW, 23236 and also avoid an memset() of the whole decoder unit. 23237 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23238 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23239 232402013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23241 23242 * ext/codecparsers: 23243 codecparsers: update to gst-vaapi-rebased commit b47983a. 23244 b47983a h264: add inferred value for slice_beta_offset_div2 23245 232462013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23247 23248 * gst/vaapi/gstvaapidecode.c: 23249 * gst/vaapi/gstvaapidownload.c: 23250 * gst/vaapi/gstvaapipluginbuffer.c: 23251 * gst/vaapi/gstvaapipluginbuffer.h: 23252 * gst/vaapi/gstvaapipostproc.c: 23253 * gst/vaapi/gstvaapisink.c: 23254 * gst/vaapi/gstvaapiupload.c: 23255 * gst/vaapi/gstvaapiuploader.c: 23256 plugins: cope with new GstVaapiVideoMeta API. 23257 Update plugin elements with the new GstVaapiVideoMeta API. 23258 This also fixes support for subpictures/overlay because GstVideoDecoder 23259 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer 23260 is marked as read-only. However, when comes in the textoverlay element 23261 for example, it checks whether the input buffer is writable. Since that 23262 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy() 23263 does not preserve the parent field, the generated buffer in textoverlay 23264 is not exploitable because we lost all VA specific information. 23265 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer, 23266 all information are preserved through gst_buffer_copy() since the latter 23267 does copy metadata (qdata in this case). 23268 232692013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23270 23271 * gst-libs/gst/vaapi/Makefile.am: 23272 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 23273 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 23274 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: 23275 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: 23276 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h: 23277 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 23278 videobuffer: wrap video meta into a surface buffer. 23279 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is 23280 no longer necessary but for compatibility with GStreamer 0.10 APIs or users 23281 expecting a GstSurfaceBuffer like Clutter. 23282 232832013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23284 23285 * gst-libs/gst/vaapi/Makefile.am: 23286 * gst-libs/gst/vaapi/gstvaapivideometa.c: 23287 * gst-libs/gst/vaapi/gstvaapivideometa.h: 23288 videobuffer: add video meta information. 23289 Add new GstVaapiVideoMeta object that holds all information needed to 23290 convey gst-vaapi specific data as a GstBuffer. 23291 232922013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23293 23294 * gst/vaapi/gstvaapidecode.c: 23295 vaapidecode: fix calculation of the time-out value. 23296 Fix calculation of the time-out value for cases where no VA surface is 23297 available for decoding. In this case, we need to wait until downstream 23298 sink consumed at least one surface. The time-out was miscalculated as 23299 it was always set to <current-time> + one second, which is not suitable 23300 for streams with larger gaps. 23301 233022013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23303 23304 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 23305 decoder: always use the calculated presentation timestamp. 23306 Use PTS value computed by the decoder, which could also be derived from 23307 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if 23308 the original one was miscomputed or only represented a DTS instead. 23309 233102013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23311 23312 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23313 h264: don't create sub-buffer for slice data. 23314 233152013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23316 23317 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23318 decoder: create new context when encoded resolution changes. 23319 Create a new VA context if the encoded surface size changes because we 23320 need to keep the underlying surface pool until the last one was released. 23321 Otherwise, either of the following cases could have happened: (i) release 23322 a VA surface to an inexistent pool, or (ii) release VA surface to an 23323 existing surface pool, but with different size. 23324 233252013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23326 23327 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23328 mpeg2: don't create sub-buffer for slice data. 23329 Avoid creating a GstBuffer for slice data. Rather, directly use the codec 23330 frame input buffer data. This is possible because the codec frame is valid 23331 until end_frame() where we submit the VA buffers for decoding. Anyway, the 23332 slice data buffer is copied into the VA buffer when it is created. 23333 233342013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23335 23336 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23337 mpeg2: minor clean-ups. 23338 Drop explicit initialization of most fields that are implicitly set to 23339 zero. Remove some useless checks for NULL pointers. 23340 233412013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23342 23343 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23344 mpeg2: optimize scan for the second start code. 23345 Optimize scan for the second start code, on the next parse() call so that 23346 to avoid scanning again earlier bytes where we didn't find any start code. 23347 233482013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23349 23350 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23351 mpeg2: use sequence_display_extension() to compute PAR. 23352 Also compute pixel-aspect-ratio from sequence_display_extension(), 23353 should it exist in the bitstream. 23354 233552013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23356 23357 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23358 mpeg2: handle sequence_display_extension(). 23359 233602012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23361 23362 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23363 mpeg2: implement {start,end}_frame() hooks. 23364 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so 23365 that to create new VA context earlier and submit VA pictures to the 23366 HW for decoding as soon as possible. i.e. don't wait for the next 23367 frame to start decoding the previous one. 23368 233692012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23370 23371 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23372 mpeg2: parse slice() header earlier. 23373 Parse slice() header and first macroblock position earlier in _parse() 23374 function instead of waiting for the _decode() stage. This doesn't change 23375 anything but readability. 23376 233772012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23378 23379 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23380 mpeg2: add codec specific decoder unit. 23381 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard 23382 GstMpegVideoPacket and additional parsed header info. Besides, we now 23383 parse as early as in the _parse() function so that to avoid un-necessary 23384 creation of sub-buffers in _decode() for video packets that are not slices. 23385 233862012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23387 23388 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23389 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: 23390 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: 23391 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 23392 decoder: introduce lists of units to decode before/after frame. 23393 Theory of operations: all units marked as "slice" are moved to the "units" 23394 list. Since this list only contains slice data units, the prev_slice pointer 23395 was removed. Besides, we now maintain two extra lists of units to be decoded 23396 before or after slice data units. 23397 In particular, all units in the "pre_units" list will be decoded before 23398 GstVaapiDecoder::start_frame() is called and units in the "post_units" 23399 list will be decoded after GstVaapiDecoder::end_frame() is called. 23400 234012013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23402 23403 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 23404 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 23405 decoder: drop useless checks for codec objects. 23406 Codec objects are used internally only and they are bound to be created 23407 with a valid GstVaapiDecoder object. 23408 234092012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23410 23411 * gst/vaapi/gstvaapidecode.c: 23412 vaapidecode: use GST_ERROR to print error messages. 23413 234142012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23415 23416 * gst/vaapi/gstvaapidecode.c: 23417 vaapidecode: avoid double release of frame on error. 23418 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame() 23419 was already called before and it returned an error. In that case, we were 23420 releasing the frame again, thus leading to a "double-free" condition. 23421 234222012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23423 23424 * .gitmodules: 23425 * autogen.sh: 23426 * configure.ac: 23427 * ext/Makefile.am: 23428 * ext/videoutils: 23429 * gst-libs/gst/Makefile.am: 23430 * gst-libs/gst/vaapi/Makefile.am: 23431 * gst-libs/gst/video/Makefile.am: 23432 * gst/vaapi/Makefile.am: 23433 Add videoutils submodule for GstVideoDecoder APIs. 23434 234352012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23436 23437 * configure.ac: 23438 configure: check for GstVideoDecoder API. 23439 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular, 23440 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested 23441 parties may either use upstream git 0.10 branch or backport the necessary support 23442 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al. 23443 234442012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23445 23446 * docs/reference/libs/libs.core.types: 23447 docs: remove obsolete gst_vaapi_surface_proxy_get_type(). 23448 GstVaapiSurfaceProxy is no longer based on the GType system. 23449 234502012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23451 23452 * docs/reference/libs/libs-sections.txt: 23453 docs: fix entries for GstVaapiSurfaceProxy. 23454 234552012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23456 23457 * NEWS: 23458 NEWS: updates. 23459 234602012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23461 23462 * configure.ac: 23463 * gst-libs/gst/vaapi/Makefile.am: 23464 Bump library major version. 23465 Increase library major so that to cope with API/ABI incompatible changes 23466 since 0.4.x series and avoid user issues. 23467 234682012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23469 23470 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 23471 surfaceproxy: minor clean-ups. 23472 234732012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23474 23475 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 23476 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 23477 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 23478 surfaceproxy: drop accessors to obsolete attributes. 23479 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a 23480 VA surface. i.e. drop any other attribute like timestamp, duration, 23481 interlaced or top-field-first. 23482 234832012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23484 23485 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23486 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 23487 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 23488 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 23489 * gst/vaapi/gstvaapidecode.c: 23490 decoder: maintain decoded frames as GstVideoCodecFrame objects. 23491 Maintain decoded surfaces as GstVideoCodecFrame objects instead of 23492 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to 23493 the strict minimum: a context and a surface. 23494 234952012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23496 23497 * gst/vaapi/gstvaapidecode.c: 23498 vaapidecode: output all decoded frames as soon as possible. 23499 Make sure to push all decoded frames downstream as soon as possible. 23500 This makes sure we don't need to wait for a new frame to be ready to 23501 be decoded before receiving new decoded frames. 23502 This also separates the decode process and the output process. The latter 23503 could be moved to a specific GstTask later on. 23504 235052012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23506 23507 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23508 * gst-libs/gst/vaapi/gstvaapidecoder.h: 23509 decoder: add gst_vaapi_decoder_get_frame() API. 23510 Add new gst_vaapi_decoder_get_frame() function meant to be used with 23511 gst_vaapi_decoder_decode(). The purpose is to return the next decoded 23512 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy 23513 as the user-data object. 23514 235152012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23516 23517 * gst/vaapi/gstvaapipostproc.c: 23518 vaapipostproc: use GstBuffer flags for TFF. 23519 Determine whether the buffer represents the top-field only by checking for 23520 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy 23521 flag. Also trust "interlaced" caps to determine whether the input frame 23522 is interleaved or not. 23523 235242012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23525 23526 * gst/vaapi/gstvaapipostproc.c: 23527 vaapipostproc: handle video sub-buffers. 23528 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer 23529 for non raw YUV cases. Make sure vaapipostproc now understands those buffers. 23530 235312012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23532 23533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23534 h264: optimize initialization process of decoder units. 23535 Decoder units were zero-initialized, including the SPS/PPS/slice headers. 23536 The latter don't require zero-initialization since the codecparsers/ lib 23537 will do so for key variables already. This is not a great value per se but 23538 at least it makes it possible to check whether the default initialization 23539 decisions made in the codecparsers/ lib were right or not. 23540 This can be reverted if this exposes too many issues. 23541 235422012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23543 23544 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23545 h264: minor clean-ups. 23546 Drop explicit initialization of most fields that are implicitly set to 23547 zero. Drop helper macros for casting to GstVaapiPictureH264 or 23548 GstVaapiFrameStore. Also remove some useless checks for NULL pointers. 23549 235502012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23551 23552 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23553 h264: drop GstVaapiSliceH264 object. 23554 Use standard GstVaapiSlice object from now on since we already have 23555 parsed and recorded the slice headers (GstH264SliceHdr decode units). 23556 235572012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23558 23559 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23560 h264: detect new pictures from decode-units. 23561 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead 23562 of assuming frame boundaries when first_mb_in_slice is zero. 23563 235642012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23565 23566 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23567 h264: implement {start,end}_frame() hooks. 23568 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so 23569 that to create new VA context earlier and submit VA pictures to the 23570 HW for decoding as soon as possible. i.e. don't wait for the next 23571 frame to start decoding the previous one. 23572 235732012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23574 23575 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23576 h264: optimize scan for the second start code. 23577 Optimize scan for the second start code, on the next parse() call so that 23578 to avoid scanning again earlier bytes where we didn't find any start code. 23579 235802012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23581 23582 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23583 h264: add codec specific decoder unit. 23584 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard 23585 NAL unit header (GstH264NalUnit) and additional parsed header info. 23586 Besides, we now parse headers as early as in the _parse() function so 23587 that to avoid un-necessary creation of sub-buffers in _decode() for 23588 NAL units that are not slices. 23589 This is a performance win by ~+1.1% only. 23590 235912012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23592 23593 * gst/vaapi/gstvaapisink.c: 23594 vaapisink: handle sub video-buffers. 23595 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer 23596 for non raw YUV cases. Make sure vaapisink now understands those buffers. 23597 235982012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23599 23600 * gst/vaapi/gstvaapidecode.c: 23601 vaapidecode: use gst_vaapi_decoder_get_codec_state(). 23602 Directly use the GstVideoCodecState associated with the VA decoder 23603 instead of parsing caps again. 23604 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23605 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23606 236072012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23608 23609 * gst/vaapi/gstvaapidecode.c: 23610 vaapidecode: use more standard helpers. 23611 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions 23612 in more places. 23613 236142012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23615 23616 * gst/vaapi/gstvaapidecode.c: 23617 * gst/vaapi/gstvaapidecode.h: 23618 vaapidecode: move to GstVideoDecoder base class. 23619 Make vaapidecode derive from the standard GstVideoDecoder base element 23620 class. This simplifies the code to the strict minimum for the decoder 23621 element and makes it easier to port to GStreamer 1.x API. 23622 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23623 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23624 236252012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23626 23627 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 23628 jpeg: initial port to new GstVaapiDecoder API 23629 236302012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23631 23632 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 23633 vc1: initial port to new GstVaapiDecoder API 23634 236352012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23636 23637 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23638 h264: initial port to new GstVaapiDecoder API 23639 236402012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23641 23642 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 23643 mpeg4: initial port to new GstVaapiDecoder API 23644 236452012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23646 23647 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23648 mpeg2: initial port to new GstVaapiDecoder API. 23649 236502012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23651 23652 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23653 * gst-libs/gst/vaapi/gstvaapidecoder.h: 23654 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 23655 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 23656 * gst-libs/gst/vaapi/gstvaapiprofile.c: 23657 * gst-libs/gst/vaapi/gstvaapiprofile.h: 23658 decoder: use GstVideoCodecState. 23659 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose 23660 it with a new gst_vaapi_decoder_get_codec_state() function. This makes 23661 it possible to drop picture size (width, height) information, framerate 23662 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information, 23663 and interlace mode (is_interlaced field). 23664 This is a new API with backwards compatibility maintained. In particular, 23665 gst_vaapi_decoder_get_caps() is still available. 23666 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23667 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23668 236692012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23670 23671 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23672 * gst-libs/gst/vaapi/gstvaapidecoder.h: 23673 * tests/test-decode.c: 23674 * tests/test-subpicture.c: 23675 decoder: update gst_vaapi_decoder_get_surface() semantics. 23676 Align gst_vaapi_decoder_get_surface() semantics with the rest of the 23677 API. That is, return a GstVaapiDecoderStatus and the decoded surface 23678 as a handle to GstVaapiSurfaceProxy in parameter. 23679 This is an API/ABI change. 23680 236812012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23682 23683 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23684 decoder: use standard helper functions. 23685 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace() 23686 whenever necessary. 23687 236882012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23689 23690 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23691 * gst-libs/gst/vaapi/gstvaapidecoder.h: 23692 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 23693 decoder: expose new parse/decode API. 23694 Introduce new decoding process whereby a GstVideoCodecFrame is created 23695 first. Next, input stream buffers are accumulated into a GstAdapter, 23696 that is then passed to the _parse() function. The GstVaapiDecoder object 23697 accumulates all parsed units and when a complete frame or field is 23698 detected, that GstVideoCodecFrame is passed to the _decode() function. 23699 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding 23700 process was successful. 23701 237022012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23703 23704 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23705 * gst-libs/gst/vaapi/gstvaapidecoder.h: 23706 decoder: add {start,end}_frame() hooks. 23707 The start_frame() hook is called prior to traversing all decode-units 23708 for decoding. The unit argument represents the first slice in the frame. 23709 Some codecs (e.g. H.264) need to wait for the first slice in order to 23710 determine the actual VA context parameters. 23711 237122012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23713 23714 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23715 * gst-libs/gst/vaapi/gstvaapidecoder.h: 23716 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 23717 decoder: add new GstVaapiDecoder API. 23718 Split decoding process into two steps: (i) parse incoming bitstreams 23719 into simple decoder-units until the frame or field is complete; and 23720 (ii) decode the whole frame or field at once. 23721 This is an ABI change. 23722 237232012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23724 23725 * gst-libs/gst/vaapi/Makefile.am: 23726 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c: 23727 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h: 23728 decoder: add new "decoder-frame" object. 23729 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units 23730 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just 23731 an extension to GstVideoCodecFrame for VA decoder purposes. It is available 23732 as the user-data member element. 23733 This is a libgstvaapi internal object. 23734 237352012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23736 23737 * gst-libs/gst/vaapi/Makefile.am: 23738 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c: 23739 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h: 23740 decoder: add new "decoder-unit" object. 23741 Introduce GstVaapiDecoderUnit which represents a fragment of the source 23742 stream to be decoded. For instance, a decode-unit will be a NAL unit for 23743 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2 23744 streams. 23745 This is a libgstvaapi internal object. 23746 237472012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23748 23749 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23750 Port GstVaapiFrameStore to GstVaapiMiniObject. 23751 237522012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23753 23754 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 23755 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 23756 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23757 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 23758 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 23759 Port codec objects to GstVaapiMiniObject. 23760 237612012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23762 23763 * gst-libs/gst/vaapi/gstvaapidecoder.c: 23764 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 23765 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 23766 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 23767 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 23768 * gst/vaapi/gstvaapidecode.c: 23769 * gst/vaapi/gstvaapipluginbuffer.c: 23770 * tests/test-decode.c: 23771 * tests/test-subpicture.c: 23772 surfaceproxy: port to GstVaapiMiniObject. 23773 GstVaapiSurfaceProxy does not use any particular functionality from 23774 GObject. Actually, it only needs a basic object type with reference 23775 counting. 23776 This is an API and ABI change. 23777 237782012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23779 23780 * gst-libs/gst/vaapi/Makefile.am: 23781 * gst-libs/gst/vaapi/gstvaapiminiobject.c: 23782 * gst-libs/gst/vaapi/gstvaapiminiobject.h: 23783 Add GstVaapiMiniObject. 23784 Introduce a new reference counted object that is very lightweight and 23785 also provides flags and user-data functionalities. Initialization and 23786 finalization times are reduced by up to a factor 5x vs GstMiniObject 23787 from GStreamer 0.10 stack. 23788 This is a libgstvaapi internal object. 23789 237902012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23791 23792 * tests/Makefile.am: 23793 * tests/test-decode.c: 23794 * tests/test-mpeg4.c: 23795 * tests/test-mpeg4.h: 23796 tests: add test for MPEG-4:2 decoding. 23797 237982012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23799 23800 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23801 h264: initialize VA context before allocating the first slice. 23802 Fix decode_slice() to ensure a VA context exists prior to creating a 23803 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA 23804 context ID. i.e. the latter was not initialized, thus causing failures 23805 on Cedar Trail for example. 23806 238072012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com> 23808 23809 * configure.ac: 23810 configure: install plugin elements in GST_PLUGIN_PATH, if set. 23811 If GST_PLUGIN_PATH environment variable exists and points to a valid 23812 directory, then use it as the system installation path for gst-vaapi 23813 plugin elements. 23814 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23815 238162012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23817 23818 * configure.ac: 23819 configure: downgrade glib required version to 2.28. 23820 238212012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23822 23823 * gst-libs/gst/vaapi/glibcompat.h: 23824 * gst/vaapi/gstvaapi.c: 23825 libs: fix compatibility with glib 2.28. 23826 Always prefer non deprecated APIs by default and provide compatibility 23827 glue for older glib versions when necessary. 23828 238292012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23830 23831 * gst-libs/gst/vaapi/gstvaapidisplay.c: 23832 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 23833 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 23834 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 23835 libs: use glib >= 2.32 semantics for mutexes. 23836 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization 23837 and termination. Basically, the new mutex objects can be used as static 23838 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex. 23839 238402012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23841 23842 * gst-libs/gst/vaapi/Makefile.am: 23843 libs: only export gst_vaapi_*() symbols. 23844 This fixes symbol clashes between the gst-vaapi built-in codecparsers/ 23845 library and the system-provided one, mainly used by videoparses/. Now, 23846 only symbols with the gst_vaapi_* prefix will be exported, if they are 23847 not marked as "hidden" to libgstvaapi. 23848 238492012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23850 23851 * gst/vaapi/gstvaapiuploader.c: 23852 vaapiupload: reset direct-rendering to zero when changing caps. 23853 Make sure to reset direct-rendering flag to zero when caps are changed, 23854 and only derive it to one when the next checks succeed. 23855 238562012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23857 23858 * gst/vaapi/gstvaapiupload.c: 23859 vaapiupload: fix sink caps to report the supported set of YUV caps. 23860 Try to allocate the GstVaapiUploader helper object prior to listing the 23861 supported image formats. Otherwise, only a single generic caps is output 23862 with no particular pixel format referenced in there. 23863 238642012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com> 23865 23866 * gst/vaapi/gstvaapiupload.c: 23867 * gst/vaapi/gstvaapiupload.h: 23868 vaapiupload: use new GstVaapiUploader helper. 23869 Use GstVaapiUploader helper that automatically handles direct rendering 23870 mode, thus making the "direct-rendering" property obsolete and hence it 23871 is now removed. 23872 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never 23873 really well supported and it could actually trigger degraded performance. 23874 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23875 238762012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23877 23878 * gst/vaapi/gstvaapisink.c: 23879 * gst/vaapi/gstvaapiuploader.c: 23880 * gst/vaapi/gstvaapiuploader.h: 23881 vaapisink: compute and expose the supported set of YUV caps. 23882 Make vaapisink expose only the set of supported caps for raw YUV buffers. 23883 Add gst_vaapi_uploader_get_caps() helper function to determine the set 23884 of supported YUV caps as source (for images). This function actually 23885 tries to zero and upload each image to a 64x64 test surface. Of course, 23886 this relies on VA drivers to not claim success if vaPutImage() is not 23887 correctly supported. 23888 238892012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23890 23891 * NEWS: 23892 * gst/vaapi/Makefile.am: 23893 * gst/vaapi/gstvaapisink.c: 23894 * gst/vaapi/gstvaapisink.h: 23895 * gst/vaapi/gstvaapiuploader.c: 23896 * gst/vaapi/gstvaapiuploader.h: 23897 vaapisink: add support for raw YUV buffers. 23898 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces. 23899 It is up to the caller to negotiate source caps (for images) and output 23900 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available 23901 to help decide between the creation of a GstVaapiVideoBuffer or a regular 23902 GstBuffer on sink pads. 23903 Signed-off-by: Zhao Halley <halley.zhao@intel.com> 23904 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23905 239062012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23907 23908 * gst-libs/gst/vaapi/gstvaapiimage.c: 23909 image: fix GstVaapiImage map and unmap. 23910 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw 23911 structure correctly filled in if the image was already mapped. 23912 Likewise, make gst_vaapi_image_unmap() return TRUE if the image 23913 was already unmapped. 23914 239152012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com> 23916 23917 * NEWS: 23918 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 23919 videobuffer: fix memory leak for surface and image. 23920 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper, 23921 thus resulting on actual memory leak of GstVaapiImage when using them 23922 for downloads/uploads from VA surfaces and more specifically surfaces 23923 when the pipeline is shutdown. i.e. vaTerminate() was never called 23924 because the resources were not unreferenced, and thus not deallocated 23925 in the end. 23926 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23927 239282012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23929 23930 * NEWS: 23931 NEWS: updates. 23932 239332012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23934 23935 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23936 h264: fix picture size in macroblocks. 23937 The picture size signalled by sps->{width,height} is the actual size with 23938 cropping applied, not the original size derived from pic_width_in_mbs_minus1 23939 and pic_height_in_map_units_minus1. VA driver expects that original size, 23940 uncropped. 23941 There is another issue pending: frame cropping information needs to be 23942 taken care of. 23943 239442012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23945 23946 * gst-libs/gst/codecparsers/Makefile.am: 23947 codecparsers: always build parserutils first. 23948 Fix commit 18245b4 so that to link and build parserutils.[ch] first. 23949 This is needed since that's the common dependency for actual codec 23950 parsers (gstvc1parser.c for instance). 23951 239522012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23953 23954 * gst-libs/gst/codecparsers/Makefile.am: 23955 codecparsers: always build the VC-1 parser library. 23956 ... this is useful to make sure pixel-aspect-ratio and framerate 23957 information are correctly parsed since we have no means to detect 23958 that at configure time. 23959 239602012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23961 23962 * configure.ac: 23963 * gst-libs/gst/codecparsers/Makefile.am: 23964 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 23965 mpeg2: fix PAR calculation from commit bd11bae. 23966 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the 23967 correct PAR values. While doing so, require a newer version of the 23968 bitstream parser library. 23969 Note: it may be necessary to also parse the Sequence_Display_Extension() 23970 header. 23971 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> 23972 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23973 239742012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23975 23976 * gst-libs/gst/vaapi/Makefile.am: 23977 Fix build with the GNU gold linker. 23978 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase 23979 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition(). 23980 239812012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com> 23982 23983 * configure.ac: 23984 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 23985 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 23986 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 23987 wayland: port to 1.0 version of the protocol. 23988 This patch updates to relect the 1.0 version of the protocol. The main 23989 changes are the switch to wl_registry for global object notifications 23990 and the way that the event queue and file descriptor is processed. 23991 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23992 239932012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 23994 23995 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 23996 h264: fix incorrect integration of previous commit (4d31e1e). 23997 git am got confused somehow, though the end result doesn't change at 23998 all since we require both SPS and PPS to be parsed prior to decoding 23999 the first slice. 24000 240012012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24002 24003 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24004 h264: start decoding slices after first SPS/PPS activation. 24005 Only start decoding slices when at least one SPS and PPS got activated. 24006 This fixes cases when a source represents a substream of another stream 24007 and no SPS and PPS was inserted before the first slice of the generated 24008 substream. 24009 240102012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24011 24012 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24013 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction. 24014 ... for interlaced streams. The short_ref[] and long_ref[] arrays may 24015 contain up to 32 fields but VA ReferenceFrames[] array expects up to 24016 16 reference frames, thus including both fields. 24017 240182012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24019 24020 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24021 h264: fix interlaced stream decoding with MMCO. 24022 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag 24023 is equal to 1, i.e. when memory management control operations are used. In 24024 particular, when field_pic_flag is set to 0, the new reference flags shall 24025 be applied to both fields. 24026 240272012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24028 24029 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24030 h264: add initial support for interlaced streams. 24031 Decoded frames are only output when they are complete, i.e. when both 24032 fields are decoded. This also means that the "interlaced" caps is not 24033 propagated to vaapipostproc or vaapisink elements. Another limitation 24034 is that interlaced bitstreams with MMCO are unlikely to work. 24035 240362012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24037 24038 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24039 h264: split remove_reference_at() into finer units. 24040 Split remove_reference_at() into a function that actually removes the 24041 specified entry from the short-term or long-term reference picture array, 24042 and a function that sets reference flags to the desired value, possibly 24043 zero. The latters marks the picture as "unused for reference". 24044 240452012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24046 24047 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 24048 decoder: fix gst_vaapi_picture_new_field() object type. 24049 Fix gst_vaapi_picture_new_field() to preserve the original picture type. 24050 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument 24051 shall generate a GstVaapiPictureH264 object. 24052 240532012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24054 24055 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24056 h264: add picture structure for reference picture marking process. 24057 Introduce new `structure' field to the H.264 specific picture structure 24058 so that to simplify the reference picture marking process. That local 24059 picture structure is derived from the original picture structure, as 24060 defined by the syntax elements field_pic_flag and bottom_field_flag. 24061 240622012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24063 24064 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24065 h264: introduce new frame store structure. 24066 The frame store represents a Decoded Picture Buffer entry, which can 24067 hold up to two fields. So far, the frame store is only used to hold 24068 full frames. 24069 240702012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24071 24072 * ext/codecparsers: 24073 codecparsers: update to gst-vaapi-rebased commit 73d6aab. 24074 73d6aab h264: fix rbsp_more_data() implementation 24075 25d04cf h264: fix error code for invalid size parsed in SPS 24076 84798e5 fix FSF address 24077 240782012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24079 24080 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24081 h264: minor clean-ups. 24082 Move DPB flush up if the current picture to decode is an IDR. Besides, 24083 don't bother to check for IDR pictures in dpb_add() function since an 24084 explicit DPB flush was already performed in this case. 24085 240862012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24087 24088 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24089 h264: simplify reference picture marking process. 24090 ... to build the short_ref[] and long_ref[] lists from the DPB, instead 24091 of maintaining them separately. This avoids refs/unrefs while making it 24092 possible to generate the list based on the actual picture structure. 24093 This also ensures that the list of generated ReferenceFrames[] actually 24094 matches what reference frames are available in the DPB. i.e. short_ref[] 24095 and long_ref[] entries are implied from the DPB, so there is no risk of 24096 having "dangling" references. 24097 240982012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24099 24100 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24101 h264: introduce per-field POC in GstVaapiPictureH264. 24102 Use the POC member available in the GstVaapiPicture base class and 24103 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt 24104 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array 24105 initialized to INT_MAX, so that to simplify picture POC calculation 24106 for non frame pictures. 24107 241082012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24109 24110 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24111 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags. 24112 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for 24113 reference bits, thus simplifying the reference picture marking process 24114 to only track a single set of reference flags. Also introduce a new 24115 long_term_frame_idx member. 24116 241172012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24118 24119 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24120 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag. 24121 241222012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24123 24124 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24125 h264: fill in GstVaapiPicture structure. 24126 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264. 24127 241282012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24129 24130 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24131 h264: add vaapi_fill_picture() helper. 24132 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264 24133 to VAPictureH264 structure. This is preparatory work to get rid of the 24134 local VAPictureH264 member in GstVaapiPictureH264. 24135 241362012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24137 24138 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24139 h264: fix activation order of picture and sequence parameters. 24140 Delay ensure_context() until we actually need a VA context for allocating 24141 new VA surfaces, and then GstVaapiPictures, but also when a real activation 24142 of a new picture parameter set occurs, thus also implying an activation 24143 of the related sequence parameter set. 24144 The most important thing was to drop the global pps and sps pointers since 24145 they may not have matched the currently activated picture parameter or 24146 sequence parameter sets at the specified decode point. 24147 Anoter positive side-effect is that this cleans up all occurrences of 24148 decode_current_picture() to only keep those useful in decode_picture(), 24149 before a new picture is allocated, or in decode_sequence_end() when 24150 an end-of-stream or end-of-sequence condition occurred. 24151 241522012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24153 24154 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24155 h264: fix scaling list generation. 24156 ... aka fix regression from efaab79. In particular, ScalingList8x8[] 24157 array was partially copied to the VAIQMatrixBufferH264. While we are 24158 at it, also improve bounds checking and avoid copying 8x8 scaling 24159 lists if transform_8x8_mode_flag is set to 0. 24160 241612012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24162 24163 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24164 h264: fix detection of picture boundaries. 24165 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL 24166 unit of a primary coded picture. 24167 241682012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24169 24170 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24171 h264: optimize handling of scaling lists. 24172 Don't copy scaling lists twice to an intermediate state. Rather, directly 24173 use the scaling lists from GstH264PPS since they would match those provided 24174 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not 24175 available in the bitstream. 24176 241772012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24178 24179 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24180 h264: simplify code when MMCO is 5. 24181 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic) 24182 is now updated accordingly to the standard. Besides, MMCO = 5 specific 24183 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5(). 24184 241852012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24186 24187 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24188 h264: fix MMCO-based reference picture marking process. 24189 Fix adaptive memory control decoded reference picture marking process 24190 implementation for operations 2 to 6, thus also fixing support for 24191 long-term reference pictures. 24192 241932012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24194 24195 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24196 h264: move MMCO handlers out of the loop (cosmetics). 24197 This change only splits each individual MMCO handler into several functions 24198 dedicated for each operation. This is needed to perform further work later 24199 on. 24200 242012012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24202 24203 * Makefile.am: 24204 debian: fix make dist for packaging. 24205 bzip2 tarballs are now used, so update the deb.upstream dependencies 24206 to include dist-bzip2 instead of plain old dist, and use the correct 24207 tar extract options to handle that format. 24208 242092012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24210 24211 * configure.ac: 24212 configure: generate bzip2 tarballs in ustar format by default. 24213 242142012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24215 24216 * configure.ac: 24217 configure: bump glib required version to 2.31.2. 24218 Use new Thread API. In particular, g_mutex_init() and g_cond_init() 24219 rather than g_mutex_new() and g_cond_new() respectively. 24220 242212012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com> 24222 24223 * gst/vaapi/gstvaapidecode.c: 24224 * gst/vaapi/gstvaapidecode.h: 24225 vaapidecode: adopt non-deprecrated glib locking primitive pattern. 24226 The use of heap allocated GMutex/GCond is deprecated. Instead place them 24227 inside the structure they are locking. 24228 These changes switch to use g_mutex_init/g_cond_init rather than the heap 24229 allocation functions. 24230 Because we cannot test for a NULL pointer for the GMutex/GCond we must 24231 initialise inside the GObject _init function and clear inside the _finalize 24232 which is guaranteed to only be called once and after the object is no longer 24233 in use. 24234 242352012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24236 24237 * gst/vaapi/gstvaapidecode.c: 24238 vaapidecode: fix compiler warnings. 24239 Don't care of the return value for gst_vaapi_decoder_put_buffer() 24240 during destruction of the element. Don't print out (uninitialised) 24241 error code when allocation of video buffer failed. 24242 242432012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24244 24245 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24246 h264: add flag to compile with strict DPB ordering mode. 24247 Allow build with strict DPB ordering mode whereby evicted entries 24248 are replaced by the next entries, in order instead of optimizing 24249 it away with the last entry in the DPB. 24250 This is only useful for debugging purpose, against a reference SW 24251 decoder for example. 24252 242532012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24254 24255 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24256 h264: drop extra code covered by built-in codecparsers. 24257 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that 24258 a newer version of codecparsers/ are used if the system provided one is 24259 now recent enough to have those required extensions. 24260 242612012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24262 24263 * gst-libs/gst/codecparsers/Makefile.am: 24264 codecparsers: fix generation of symlinks. 24265 Try to improve dependencies while generating symlinks to externally 24266 maintained copy of codecparsers (derived from upstream git master 24267 tree). 24268 242692012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24270 24271 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 24272 vc1: use framerate information from bitstream parser. 24273 242742012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 24275 24276 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 24277 vc1: use pixel-aspect-ratio from bitstream parser. 24278 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 24279 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24280 242812012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 24282 24283 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24284 mpeg2: use pixel-aspec-ratio information from bitstream parser. 24285 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 24286 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24287 242882012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24289 24290 * configure.ac: 24291 * gst-libs/gst/codecparsers/Makefile.am: 24292 codecparsers: h264: use submodule sources. 24293 Use newer sources from the codecparsers/ submodule for 24294 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs; 24295 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio. 24296 242972012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24298 24299 * .gitignore: 24300 * configure.ac: 24301 * gst-libs/gst/codecparsers/Makefile.am: 24302 * gst-libs/gst/codecparsers/gstjpegparser.c: 24303 * gst-libs/gst/codecparsers/gstjpegparser.h: 24304 * gst-libs/gst/vaapi/Makefile.am: 24305 codecparsers: jpeg: use submodule sources. 24306 243072012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24308 24309 * .gitmodules: 24310 * Makefile.am: 24311 * autogen.sh: 24312 * configure.ac: 24313 * ext/Makefile.am: 24314 * ext/codecparsers: 24315 Add codecparsers submodule. 24316 243172012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24318 24319 * .gitignore: 24320 .gitignore: updates. 24321 243222012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24323 24324 * autogen.sh: 24325 autogen: fix check for gtkdocize and autoreconf. 24326 If gtkdocize or autoreconf programs were not found, then the autogen.sh 24327 script would fail to report that correctly because test -z was not passed 24328 any argument (empty string "" in this case). 24329 243302012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk> 24331 24332 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24333 h264: use pixel-aspect-ratio from SPS header. 24334 Propagate pixel-aspect-ratio determined by the GStreamer codecparser 24335 from the sequence headers. 24336 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk> 24337 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24338 243392012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24340 24341 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24342 h264: add decode_nalu() helper function. 24343 Split decode_buffer() into the core infrastructure that determines 24344 the NAL units contained in the adapter and the actual function that 24345 decodes the NAL unit. 24346 243472012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24348 24349 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24350 h264: fix end-of-stream conditions (flush). 24351 Decode pending data in the adapter prior to processing the actual 24352 code for end-of-stream. 24353 243542012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24355 24356 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24357 mpeg2: add decode_packet() helper function. 24358 Split decode_buffer() into the core infrastructure that determines 24359 the packets contained in the adapter and the actual function that 24360 decodes the packet data. 24361 243622012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24363 24364 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24365 mpeg2: fix end-of-stream conditions (flush). 24366 Decode pending data in the adapter prior to processing the actual 24367 code for end-of-stream. Initial code from Feng Yuan. 24368 243692012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24370 24371 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24372 mpeg2: fix memory leak of empty packets. 24373 Fix memory leakage of empty packets, i.e. packets that only contain 24374 the start code prefix. In particular, free empty user-data packets. 24375 Besides, the codec parser will already fail gracefully if the packet 24376 to parse does not have the minimum required size. So, we can also 24377 completely drop the block of code that used to handle packets of size 4 24378 (including the start code). 24379 243802012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24381 24382 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24383 mpeg2: fix return value for "no-data" conditions. 24384 Fix return value when the second scan for start code fails. This means 24385 there is not enough data to determine the full extents of the current 24386 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA 24387 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS. 24388 243892012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24390 24391 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24392 decoder: refine semantics of gst_vaapi_decoder_put_buffer(). 24393 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty 24394 buffer is passed on. An empty buffer is a buffer with a NULL data pointer 24395 or with a size equals to zero. In this case, that buffer is simply 24396 skipped and the function returns TRUE. A NULL buffer argument still 24397 marks the end-of-stream. 24398 243992012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24400 24401 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24402 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 24403 decoder: drop unused functions. 24404 244052012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com> 24406 24407 * gst/vaapi/gstvaapidecode.c: 24408 vaapidecode: flush buffers when receiving EOS. 24409 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24410 244112012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24412 24413 * debian.upstream/Makefile.am: 24414 debian: fix make dist for packaging. 24415 244162012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24417 24418 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 24419 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 24420 wayland: cosmetics (remove tabs). 24421 244222012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com> 24423 24424 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 24425 wayland: add support for windowed mode. 24426 Rather than always making the surface fullscreen instead implement the 24427 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface 24428 fullscreen on not depending on that. 24429 Reviewed-by: Joe Konno <joe.konno@intel.com> 24430 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24431 244322012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24433 24434 * configure.ac: 24435 Bump version for development. 24436 244372012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24438 24439 * README: 24440 * configure.ac: 24441 Fix and document build dependencies better. 24442 244432012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24444 24445 * debian.upstream/control.in: 24446 debian: fix GStreamer build dependencies. 24447 244482012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24449 24450 * configure.ac: 24451 * debian.upstream/control.in: 24452 debian: fix Wayland build dependencies. 24453 244542012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24455 24456 * debian.upstream/control.in: 24457 debian: fix conditional build of packages. 24458 Make it still possible to build package even if one of the build dependencies 24459 for a specific video backend is not available. 24460 244612012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24462 24463 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 24464 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 24465 utils: drop unused GLX helpers. 24466 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture 24467 extensions since they are not used throughout gstreamer-vaapi. 24468 244692012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24470 24471 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 24472 utils: fix build with <GL/glext.h> version >= 85. 24473 Mesa recently updated the <GL/glext.h> header version to Khronos version 85. 24474 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the 24475 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines 24476 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled, 24477 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well. 24478 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for 24479 newer versions of the <GL/glext.h> header. 24480 244812012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24482 24483 * configure.ac: 24484 configure: update VA-API version requirements. 24485 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0). 24486 244872012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24488 24489 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24490 h264: review and report errors accordingly. 24491 Use GST_ERROR() to report real errors instead of hiding them into 24492 GST_DEBUG(). 24493 244942012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24495 24496 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24497 h264: exclusively use GstAdapter, drop sub-buffer hack. 24498 Maintaining the sub-buffer is rather suboptimal especially since we 24499 were also maintaining a GstAdapter. Now, we only use the GstAdapter 24500 thus requiring minor extra parsing when receiving avcC buffers. 24501 245022012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24503 24504 * README: 24505 README: updates. 24506 245072012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24508 24509 * NEWS: 24510 NEWS: updates. 24511 245122012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24513 24514 * debian.upstream/gstreamer-vaapi.install.in: 24515 debian: fix packaging on recent Ubuntu platforms. 24516 Use explicit GStreamer plugins path. 24517 245182012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24519 24520 * docs/reference/libs/libs-docs.xml.in: 24521 * docs/reference/libs/libs.core.types: 24522 docs: fix build for make dist. 24523 245242012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net> 24525 24526 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 24527 wayland: set opaque region for YUV surface. 24528 This allows the compositor to optimize redraws and cull away changes 24529 obscured by the video surface. 24530 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24531 245322012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24533 24534 * configure.ac: 24535 configure: fix check for libva-glx and libva-drm. 24536 245372012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24538 24539 * gst-libs/gst/vaapi/glibcompat.h: 24540 glibcompat: add replacement for g_cond_wait_until(). 24541 245422012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24543 24544 * gst/vaapi/gstvaapidecode.c: 24545 * gst/vaapi/gstvaapidownload.c: 24546 * gst/vaapi/gstvaapipostproc.c: 24547 * gst/vaapi/gstvaapisink.c: 24548 * gst/vaapi/gstvaapiupload.c: 24549 plugins: include "sysdeps.h" instead of "config.h". 24550 245512012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24552 24553 * gst-libs/gst/codecparsers/gstjpegparser.c: 24554 codecparsers: jpeg: add missing includes. 24555 245562012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24557 24558 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24559 * gst-libs/gst/vaapi/gstvaapidecoder.h: 24560 * gst/vaapi/gstvaapidecode.c: 24561 vaapidecode: don't reset decoder if codec type is the same. 24562 Reset, i.e. destroy then create, the decoder in _setcaps() handler only 24563 if the underlying codec type actually changed. This makes it possible 24564 to be more tolerant with certain MPEG-2 streams that get parsed to 24565 form caps that are compatible with the previous state but minor changes 24566 to "codec-data". 24567 245682012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24569 24570 * gst/vaapi/gstvaapidecode.c: 24571 vaapidecode: simplify codec lookup from caps. 24572 Add new gst_vaapi_codec_from_caps() helper to determine codec type from 24573 the specified caps. Don't globally expose this function since this is 24574 really trivial and only used in the vaapidecode element. 24575 245762012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24577 24578 * gst/vaapi/gstvaapidecode.c: 24579 * gst/vaapi/gstvaapidecode.h: 24580 vaapidecode: improve "no free surface" conditions. 24581 Previously, vaapidecode would wait up to one second until a free surface 24582 is available, or it aborts decoding. Now, vaapidecode waits until the 24583 last decoded surface was to be presented, plus one second. Besides, end 24584 times are now expressed relative to the monotonic clock. 24585 245862012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24587 24588 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24589 * gst/vaapi/gstvaapidecode.c: 24590 decoder: propagate buffer duration downstream. 24591 245922012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24593 24594 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 24595 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 24596 surfaceproxy: add "duration" property. 24597 245982012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24599 24600 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24601 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24602 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 24603 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24604 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 24605 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 24606 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 24607 decoder: cope with new GstVaapiContextInfo based API. 24608 Update decoders to report the maximum number of reference frames to use. 24609 246102012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24611 24612 * gst-libs/gst/vaapi/gstvaapicontext.c: 24613 context: JPEG codec does not need any reference frame. 24614 246152012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24616 24617 * gst-libs/gst/vaapi/gstvaapicontext.c: 24618 * gst-libs/gst/vaapi/gstvaapicontext.h: 24619 context: allow number of reference frames to be set. 24620 Make it possible to specify the maximum number of references to use within 24621 a single VA context. This helps reducing GPU memory allocations to the useful 24622 number of references to be used. 24623 246242012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24625 24626 * gst/vaapi/gstvaapipostproc.c: 24627 vaapipostproc: fix deinterlace-{mode,method} types definition. 24628 246292012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24630 24631 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 24632 mpeg4: fix debug info for unsupported profile. 24633 246342012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24635 24636 * gst-libs/gst/vaapi/gstvaapicontext.c: 24637 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24638 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 24639 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 24640 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24641 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 24642 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 24643 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24644 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 24645 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 24646 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 24647 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 24648 * gst-libs/gst/vaapi/gstvaapiimage.c: 24649 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 24650 * gst-libs/gst/vaapi/gstvaapiobject.c: 24651 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 24652 * gst-libs/gst/vaapi/gstvaapisurface.c: 24653 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 24654 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 24655 * gst-libs/gst/vaapi/gstvaapitexture.c: 24656 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 24657 * gst-libs/gst/vaapi/gstvaapivalue.c: 24658 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 24659 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: 24660 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 24661 * gst-libs/gst/vaapi/gstvaapivideopool.c: 24662 * gst-libs/gst/vaapi/gstvaapiwindow.c: 24663 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 24664 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 24665 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 24666 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 24667 libs: fix build in strict ISO C mode. 24668 246692012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24670 24671 * gst/vaapi/gstvaapi.c: 24672 * gst/vaapi/gstvaapidecode.c: 24673 * gst/vaapi/gstvaapidownload.c: 24674 * gst/vaapi/gstvaapipostproc.c: 24675 * gst/vaapi/gstvaapisink.c: 24676 * gst/vaapi/gstvaapiupload.c: 24677 plugins: fix build in strict ISO C mode. 24678 246792012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24680 24681 * pkgconfig/gstreamer-vaapi-glx.pc.in: 24682 * pkgconfig/gstreamer-vaapi-x11.pc.in: 24683 * pkgconfig/gstreamer-vaapi.pc.in: 24684 pkgconfig: fix dependencies and slightly improve description. 24685 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve 24686 descriptions with clearer renderer names. 24687 246882012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de> 24689 24690 * gst/vaapi/gstvaapidecode.c: 24691 vaapidecode: acquire lock only if the mutex exists. 24692 When playback stops the GstVaapiDecode object is reset into a clean 24693 state. However, surfaces may still be referenced by library users and 24694 unreferencing them after the reset triggers an access to an unset mutex. 24695 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24696 246972012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24698 24699 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24700 decoder: drop extraneous return for void function. 24701 247022012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24703 24704 * gst-libs/gst/vaapi/gstvaapiimage.c: 24705 image: don't use (void *) pointer arithmetic. 24706 247072012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de> 24708 24709 * gst-libs/gst/vaapi/gstvaapidecoder.h: 24710 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 24711 * gst-libs/gst/vaapi/gstvaapidisplay.h: 24712 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 24713 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 24714 * gst-libs/gst/vaapi/gstvaapiprofile.h: 24715 * gst-libs/gst/vaapi/gstvaapisurface.h: 24716 * gst-libs/gst/vaapi/gstvaapitypes.h: 24717 * gst/vaapi/gstvaapipostproc.h: 24718 Do not forward declare enums. 24719 Forward declaring enums is not allowed by the C standard and aborts 24720 compilation if the header file is included in a C++ project. 24721 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24722 247232012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24724 24725 * configure.ac: 24726 configure: fix check for VA/DRM API. 24727 247282012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24729 24730 * gst/vaapi/gstvaapisink.c: 24731 vaapisink: fix calculation of window size. 24732 If either dimension is out-of-bounds, then scale window to fit the 24733 display size, even if the output is to be rotated. Use the standard 24734 gst_video_sink_center_rect() function to center and scale the window 24735 wrt. the outer (display) bounds. 24736 247372012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com> 24738 24739 * gst/vaapi/gstvaapisink.c: 24740 * gst/vaapi/gstvaapisink.h: 24741 vaapisink: add video rotation support. 24742 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24743 247442012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24745 24746 * gst/vaapi/gstvaapipluginutil.h: 24747 pluginutils: add G_PRIMITIVE_SWAP() helper macro. 24748 This macro helps swapping variables while maintaining the correct underlying 24749 and primitive type. 24750 247512012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24752 24753 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24754 display: fix display aspect ratio when display is rotated. 24755 247562012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24757 24758 * configure.ac: 24759 * gst-libs/gst/vaapi/Makefile.am: 24760 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 24761 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 24762 display: fix physical display size when display is rotated. 24763 247642012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24765 24766 * gst-libs/gst/vaapi/gstvaapivalue.c: 24767 display: fix GstVaapiRotation enumeration of values. 24768 247692012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24770 24771 * docs/reference/libs/libs-docs.xml.in: 24772 * docs/reference/libs/libs-sections.txt: 24773 * gst-libs/gst/vaapi/Makefile.am: 24774 * gst-libs/gst/vaapi/gstvaapivideosink.c: 24775 * gst-libs/gst/vaapi/gstvaapivideosink.h: 24776 * gst/vaapi/gstvaapidecode.c: 24777 * gst/vaapi/gstvaapidownload.c: 24778 * gst/vaapi/gstvaapipostproc.c: 24779 * gst/vaapi/gstvaapisink.c: 24780 * gst/vaapi/gstvaapiupload.c: 24781 vaapisink: drop obsolete GstVaapiVideoSink interface. 24782 This interface was deprecated since 0.3.x series when the GstVideoContext 24783 interface was added to the main GStreamer APIs. 24784 247852012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24786 24787 * gst/vaapi/gstvaapisink.c: 24788 * gst/vaapi/gstvaapisink.h: 24789 vaapisink: automatically detect overlay rendering mode. 24790 Retain the VA surface until another surface is to be displayed only 24791 if VA display rendering mode is determined to be "overlay" mode. 24792 247932012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24794 24795 * gst/vaapi/gstvaapisink.c: 24796 * gst/vaapi/gstvaapisink.h: 24797 vaapisink: retain VA surface until another one is displayed. 24798 Keep VA surface proxy associated with the surface that is currently 24799 being displayed. This makes sure that surface is not released back 24800 to the pool of surfaces free to use for decoding. This is necessary 24801 with VA driver implementations that support rendering to an overlay 24802 pipe. Otherwise, there could be cases where we are decoding into a 24803 surface that is being displayed, hence some flickering. 24804 248052012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24806 24807 * gst/vaapi/gstvaapisink.h: 24808 vaapisink: fix build with older toolchains. 24809 Don't re-declare GstVaapiTexture if USE_GLX mode is set. 24810 248112012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24812 24813 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24814 display: partially revert 8ebe4d6. 24815 Don't try to fix up the initial values, this could make things worse. 24816 Simply assume the driver does not support the capability in this case. 24817 248182012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24819 24820 * tests/test-display.c: 24821 tests: dump VA display properties. 24822 248232012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24824 24825 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24826 display: fix validation process of properties during discovery. 24827 Some VA drivers (e.g. EMGD) can have completely random values for initial 24828 display attributes. So, try to improve the discovery process to check the 24829 initial display attribute values actually fall within valid bounds. If not, 24830 try to reset those to some sensible values like the default value reported 24831 through vaQueryDisplayAttributes(). 24832 248332012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24834 24835 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24836 * gst-libs/gst/vaapi/gstvaapidisplay.h: 24837 display: add color balance properties. 24838 Add support for hue, saturation, brightness and contrast attributes. 24839 248402012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24841 24842 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24843 display: initialize default attribute values. 24844 Ensure the display attribute is actually supported by trying to retrieve 24845 its current value during GstVaapiDisplay creation. 24846 248472012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24848 24849 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24850 display: raise "notify" for property changes. 24851 248522012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24853 24854 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24855 * gst-libs/gst/vaapi/gstvaapidisplay.h: 24856 display: expose display attributes as GObject properties. 24857 Expose VA display "render-mode" and "rotation" attributes as standard 24858 GObject properties. 24859 248602012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24861 24862 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24863 display: install properties in batch. 24864 Use g_object_class_install_properties() to install GstVaapiDisplay properties. 24865 It is useful to maintain properties as GParamSpec so that to be able to raise 24866 "notify" signals by id instead of by name in the future. 24867 248682012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24869 24870 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24871 display: fix gst_vaapi_display_has_property(). 24872 Append the "render-mode" and "rotation" properties, should they be supported 24873 by the underlying VA driver. 24874 248752012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com> 24876 24877 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24878 * gst-libs/gst/vaapi/gstvaapidisplay.h: 24879 * gst-libs/gst/vaapi/gstvaapitypes.h: 24880 * gst-libs/gst/vaapi/gstvaapiutils.c: 24881 * gst-libs/gst/vaapi/gstvaapiutils.h: 24882 * gst-libs/gst/vaapi/gstvaapivalue.c: 24883 * gst-libs/gst/vaapi/gstvaapivalue.h: 24884 display: add support for rotation modes. 24885 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24886 248872012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24888 24889 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24890 * gst-libs/gst/vaapi/gstvaapidisplay.h: 24891 * gst-libs/gst/vaapi/gstvaapitypes.h: 24892 * gst-libs/gst/vaapi/gstvaapivalue.c: 24893 * gst-libs/gst/vaapi/gstvaapivalue.h: 24894 display: add support for rendering modes. 24895 A rendering mode can be "overlay" or "texture"'ed blit. 24896 The former mode implies that a VA surface used for rendering can't be 24897 re-used right away for decoding, so the sink shall make provisions to 24898 retain the associated surface proxy until the next surface is to be 24899 displayed. 24900 The latter mode implies that the VA surface is implicitly copied to an 24901 intermediate backing store, or back buffer of a frame buffer, so the 24902 associated surface proxy can be disposed right away. 24903 249042012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24905 24906 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24907 * gst-libs/gst/vaapi/gstvaapidisplay.h: 24908 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 24909 display: add initial support for display attributes. 24910 The VA display attributes are mapped to properties so that to maintain the 24911 GStreamer terminology. Properties are to be identified by name, but internal 24912 functions are available to lookup the property by the actual VA display 24913 attribute type. 24914 249152012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 24916 24917 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 24918 jpeg: fix end-of-image (EOI) handler. 24919 decode_current_picture() was converted to return a gboolean instead 24920 of a GstVaapiDecoderStatus, so we were not getting out of the decode 24921 loop as expected, or could cause an error instead. 24922 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24923 249242012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24925 24926 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 24927 mpeg2: include start code into VA slice data buffer. 24928 Integrate the start code prefix in the slice data buffer that is submitted 24929 to the hardware. VA-API specifies that slice_data_offset is the offset to 24930 the first byte of slice data. And, for MPEG-2, slice() data begins with 24931 the slice_start_code. Some VA driver implementations (EMGD) expect this. 24932 249332012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org> 24934 24935 * autogen.sh: 24936 autogen: fix configure script generation when srcdir != builddir. 24937 This patch allows for regenerating the configure script from a build 24938 directory that is not the actual source directory. 24939 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24940 249412012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org> 24942 24943 * configure.ac: 24944 configure: use new libtool syntax. 24945 This now requires libtool >= 2.2 to regenerate the configure script. 24946 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24947 249482012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org> 24949 24950 * gst-libs/gst/vaapi/gstvaapidecoder.c: 24951 decoder: use g_object_notify_by_pspec(). 24952 Use g_object_notify_by_pspec() instead of g_object_notify() so that to 24953 avoid a property name lookup. i.e. this makes notifications faster to 24954 the `vaapidecode' element. 24955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24956 249572012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24958 24959 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 24960 wayland: handle de-interlacing flags. 24961 VA/Wayland API was updated to allow flags for bob deinterlacing. 24962 More elaborated filters will require a complete VA/VPP pipeline. 24963 249642012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24965 24966 * gst-libs/gst/codecparsers/gstjpegparser.c: 24967 jpeg: fix default quantization tables. 24968 Two elements in the luminance quantization table were wrong. So, 24969 gst_jpeg_get_default_quantization_tables() now reconstructs tables 24970 in zig-zag order from the standard ones (Tables K.1 and K.2). 24971 249722012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24973 24974 * gst-libs/gst/codecparsers/gstjpegparser.c: 24975 jpeg: compute default Huffman tables. 24976 ... instead of having them pre-calculated. This saves around 1.5 KB 24977 of data in the DSO but requires gst_jpeg_get_default_huffman_tables() 24978 to do more work. Though, the client application may have to call that 24979 function at most once, only. 24980 249812012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24982 24983 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24984 display: drop VAProfileNone entries from debug messages. 24985 249862012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com> 24987 24988 * gst-libs/gst/vaapi/gstvaapidisplay.c: 24989 display: query for supported display attributes. 24990 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24991 249922012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com> 24993 24994 * gst-libs/gst/vaapi/gstvaapiutils.c: 24995 * gst-libs/gst/vaapi/gstvaapiutils.h: 24996 utils: add string_of_VADisplayAttributeType() helper. 24997 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 24998 249992012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25000 25001 * gst/vaapi/gstvaapisink.c: 25002 vaapisink: handle VA/DRM API. 25003 This is not useful in practice but for raw performance evaluation when 25004 the sink is invoked with display=drm sync=false. fakesink could also be 25005 used though. 25006 250072012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25008 25009 * gst/vaapi/Makefile.am: 25010 * gst/vaapi/gstvaapipluginutil.c: 25011 plugins: add support for headless pipelines. 25012 250132012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25014 25015 * tests/Makefile.am: 25016 * tests/output.c: 25017 * tests/test-display.c: 25018 * tests/test-windows.c: 25019 tests: add support for headless decoding. 25020 250212012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25022 25023 * NEWS: 25024 * configure.ac: 25025 * debian.upstream/Makefile.am: 25026 * debian.upstream/control.in: 25027 * debian.upstream/libgstvaapi-drm.install.in: 25028 * gst-libs/gst/vaapi/Makefile.am: 25029 * gst-libs/gst/vaapi/gstvaapidisplay.c: 25030 * gst-libs/gst/vaapi/gstvaapidisplay.h: 25031 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c: 25032 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h: 25033 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h: 25034 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c: 25035 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h: 25036 * pkgconfig/Makefile.am: 25037 * pkgconfig/gstreamer-vaapi-drm.pc.in: 25038 Add initial support for VA/DRM. 25039 250402012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25041 25042 * configure.ac: 25043 * gst-libs/gst/vaapi/Makefile.am: 25044 Fix build without X11 (again). 25045 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle 25046 files list wrt. x11, glx and wayland backends. 25047 250482012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25049 25050 * configure.ac: 25051 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 25052 * gst-libs/gst/vaapi/gstvaapicompat.h: 25053 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25054 jpeg: update to the latest VA-API changes (0.32.1+). 25055 250562012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25057 25058 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 25059 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 25060 * gst/vaapi/gstvaapisink.c: 25061 wayland: implement display ::get_size*() hooks. 25062 250632012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25064 25065 * gst/vaapi/gstvaapipluginutil.c: 25066 plugins: prefer X11 rendering over GLX. 25067 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(), 25068 for rendering instead of texturing. 25069 250702012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net> 25071 25072 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 25073 wayland: use scale fullscreen method. 25074 This makes the compositor scale the surface to fit and preserves aspect 25075 ratio. 25076 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25077 250782012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net> 25079 25080 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 25081 wayland: respond to ping/pong protocol so we're not deemed unresponsive. 25082 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25083 250842012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25085 25086 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 25087 wayland: fix double disconnect of display. 25088 250892012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25090 25091 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 25092 wayland: mangle display name for cache lookups. 25093 250942012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25095 25096 * configure.ac: 25097 * debian.upstream/Makefile.am: 25098 * debian.upstream/control.in: 25099 * debian.upstream/libgstvaapi-wayland.install.in: 25100 * pkgconfig/Makefile.am: 25101 * pkgconfig/gstreamer-vaapi-wayland.pc.in: 25102 wayland: add packaging files. 25103 251042012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25105 25106 * gst-libs/gst/vaapi/gstvaapidisplay.c: 25107 * gst/vaapi/gstvaapipluginutil.c: 25108 * gst/vaapi/gstvaapisink.c: 25109 * pkgconfig/Makefile.am: 25110 Fix build without X11. 25111 251122012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25113 25114 * gst-libs/gst/vaapi/gstvaapidisplay.c: 25115 * gst-libs/gst/vaapi/gstvaapidisplay.h: 25116 * gst/vaapi/Makefile.am: 25117 * gst/vaapi/gstvaapipluginutil.c: 25118 * gst/vaapi/gstvaapisink.c: 25119 plugins: add support for Wayland. 25120 251212012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25122 25123 * tests/Makefile.am: 25124 * tests/output.c: 25125 * tests/test-display.c: 25126 * tests/test-windows.c: 25127 tests: add support for Wayland. 25128 251292012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 25130 25131 * NEWS: 25132 * configure.ac: 25133 * gst-libs/gst/vaapi/Makefile.am: 25134 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c: 25135 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h: 25136 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h: 25137 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 25138 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c: 25139 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h: 25140 Add initial support for VA/Wayland. 25141 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25142 251432012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25144 25145 * gst/vaapi/gstvaapipluginbuffer.c: 25146 plugins: fix creation of video buffer from surface proxy. 25147 Fix a regression introduced with commit 8ef490a. 25148 251492012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25150 25151 * gst/vaapi/gstvaapipluginbuffer.c: 25152 * gst/vaapi/gstvaapipluginutil.c: 25153 plugins: use new display types more. 25154 In particular, simplify gst_vaapi_reply_to_query() with display types. 25155 Likewise for creating new video buffers. 25156 251572012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25158 25159 * gst/vaapi/gstvaapidecode.c: 25160 * gst/vaapi/gstvaapidownload.c: 25161 * gst/vaapi/gstvaapipluginutil.c: 25162 * gst/vaapi/gstvaapipluginutil.h: 25163 * gst/vaapi/gstvaapipostproc.c: 25164 * gst/vaapi/gstvaapisink.c: 25165 * gst/vaapi/gstvaapiupload.c: 25166 plugins: fix display type selection and propagation. 25167 If vaapisink is in the GStreamer pipeline, then we shall allocate a 25168 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent 25169 queries from vaapidecode shall get a valid answer from vaapisink. 25170 251712012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25172 25173 * gst-libs/gst/vaapi/gstvaapidisplay.c: 25174 display: fix destruction of mutex. 25175 251762012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25177 25178 * gst-libs/gst/vaapi/gstvaapidisplay.c: 25179 * gst-libs/gst/vaapi/gstvaapidisplay.h: 25180 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 25181 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 25182 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 25183 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 25184 * gst/vaapi/gstvaapipluginutil.c: 25185 * gst/vaapi/gstvaapipluginutil.h: 25186 * gst/vaapi/gstvaapisink.c: 25187 display: add display types. 25188 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that 25189 we could simplify characterization of a GstVaapiDisplay. Also rename "auto" 25190 type to "any", and add a "display-type" attribute. 25191 251922012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25193 25194 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 25195 display: use prefixed display names for cache lookups. 25196 This improves display name comparisons by always allocating a valid display 25197 name. This also helps to disambiguate lookups by name in the global display 25198 cache, should a new backend be implemented. 25199 252002012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25201 25202 * gst/vaapi/gstvaapipluginutil.h: 25203 plugins: declare helper functions as internal. 25204 252052012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25206 25207 * docs/reference/libs/libs-sections.txt: 25208 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 25209 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 25210 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: 25211 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: 25212 * gst/vaapi/Makefile.am: 25213 * gst/vaapi/gstvaapidecode.c: 25214 * gst/vaapi/gstvaapidownload.c: 25215 * gst/vaapi/gstvaapipluginbuffer.c: 25216 * gst/vaapi/gstvaapipluginbuffer.h: 25217 * gst/vaapi/gstvaapipostproc.c: 25218 * gst/vaapi/gstvaapiupload.c: 25219 videobuffer: drop deprecated functions. 25220 Move video buffer creation routines to plugin elements. That exclusively 25221 uses *_typed_new*() variants. 25222 252232012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25224 25225 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 25226 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: 25227 videobuffer: mark video buffer creation routines as deprecated. 25228 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi 25229 plugin elements. So deprecate any explicit creation routines that are not the 25230 new *_typed_new*() variants. 25231 252322012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25233 25234 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 25235 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: 25236 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h: 25237 videobuffer: factor out base and GLX implementations. 25238 Introduce new typed constructors internal to gstreamer-vaapi plugin elements. 25239 This avoids duplication of code, and makes it possible to further implement 25240 generic video buffer creation routines that automatically map to base or GLX 25241 variants. 25242 252432012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25244 25245 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 25246 utils: fix gl_create_context() with parent context set. 25247 If GLX window was created from a foreign Display, then that same Display shall 25248 be used for subsequent glXMakeCurrent(). This means that gl_create_context() 25249 will now use the same Display that the parent, if available. 25250 This fixes cluttersink with the Intel GenX VA driver. 25251 252522012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25253 25254 * gst/vaapi/gstvaapidecode.c: 25255 * gst/vaapi/gstvaapidownload.c: 25256 * gst/vaapi/gstvaapipluginutil.c: 25257 * gst/vaapi/gstvaapipluginutil.h: 25258 * gst/vaapi/gstvaapipostproc.c: 25259 * gst/vaapi/gstvaapisink.c: 25260 * gst/vaapi/gstvaapiupload.c: 25261 pluginutils: improve automatic display type selection. 25262 252632012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25264 25265 * gst/vaapi/gstvaapipluginutil.c: 25266 * gst/vaapi/gstvaapipluginutil.h: 25267 pluginutils: cosmetics (indentation fixes). 25268 252692012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25270 25271 * configure.ac: 25272 configure: simplify video outputs summary. 25273 252742012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25275 25276 * configure.ac: 25277 * gst/vaapi/gstvaapipluginutil.c: 25278 * gst/vaapi/gstvaapipluginutil.h: 25279 * gst/vaapi/gstvaapisink.c: 25280 * gst/vaapi/gstvaapisink.h: 25281 configure: drop check for --enable-vaapisink-glx. 25282 vaapisink is now built with support for multiple display types, whenever 25283 they are enabled. The new "display" attribute is used to select a particular 25284 renderer. 25285 252862012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25287 25288 * configure.ac: 25289 * gst-libs/gst/vaapi/gstvaapicompat.h: 25290 * gst/vaapi/Makefile.am: 25291 * gst/vaapi/gstvaapidecode.c: 25292 * gst/vaapi/gstvaapidownload.c: 25293 * gst/vaapi/gstvaapipluginutil.c: 25294 * gst/vaapi/gstvaapipostproc.c: 25295 * gst/vaapi/gstvaapiupload.c: 25296 * tests/test-display.c: 25297 configure: drop check for --enable-vaapi-glx. 25298 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API 25299 support, or fallback to TFP+FBO if this API is not found. Now, we check for 25300 the VA/GLX API by default if --enable-glx is set. If this API is not found, 25301 we now default to use TFP+FBO. 25302 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and 25303 will be removed in the future. If GLX rendering is requested, then the VA/GLX 25304 API shall be used as it covers most usages. e.g. AMD driver can't render to 25305 an X pixmap yet. 25306 253072012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25308 25309 * tests/output.c: 25310 tests: allow GLX output, if available and selected. 25311 253122012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25313 25314 * tests/Makefile.am: 25315 * tests/output.c: 25316 * tests/output.h: 25317 * tests/test-decode.c: 25318 * tests/test-subpicture.c: 25319 * tests/test-surfaces.c: 25320 tests: use common display and window creation routines. 25321 Add new --output option to select the renderer. Use --list-outputs to 25322 print a list of supported renderers. 25323 253242012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25325 25326 * tests/Makefile.am: 25327 tests: move encoded bitstreams to libutils.la. 25328 253292012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25330 25331 * tests/Makefile.am: 25332 tests: build convenience library for common utilities. 25333 253342012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25335 25336 * tests/Makefile.am: 25337 * tests/test-display.c: 25338 tests: simplify build with various display options. 25339 253402012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25341 25342 * configure.ac: 25343 configure: improve checks for X11. 25344 253452012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25346 25347 * tests/Makefile.am: 25348 configure: fix previous commit for GLX deps. 25349 253502012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25351 25352 * configure.ac: 25353 * gst-libs/gst/vaapi/Makefile.am: 25354 configure: improve checks for GLX. 25355 253562012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25357 25358 * configure.ac: 25359 * gst-libs/gst/vaapi/gstvaapicompat.h: 25360 * gst-libs/gst/vaapi/gstvaapidisplay.h: 25361 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 25362 * gst-libs/gst/vaapi/gstvaapiutils.h: 25363 Drop support for obsolete VA-API versions < 0.30.4. 25364 253652012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25366 25367 * configure.ac: 25368 * gst-libs/gst/Makefile.am: 25369 * gst-libs/gst/gstutils_version.h.in: 25370 * gst/vaapi/gstvaapisink.c: 25371 vaapisink: drop checks for new APIs used by default. 25372 GStreamer -base plugins >= 0.10.31 are now required, so the checks for 25373 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle() 25374 are no longer necessary. 25375 253762012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25377 25378 * configure.ac: 25379 configure: cosmetics and some minor changes. 25380 - Better grouping of feature checks 25381 - Sort list of config files to generate 25382 253832012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25384 25385 * configure.ac: 25386 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 25387 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 25388 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 25389 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 25390 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 25391 * gst-libs/gst/vaapi/gstvaapiutils.h: 25392 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 25393 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 25394 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden. 25395 253962012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25397 25398 * gst-libs/gst/vaapi/Makefile.am: 25399 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c: 25400 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h: 25401 Drop obsolete GstVaapiTSB. 25402 It has been replaced with a GstAdapter and gst_adapter_prev_pts(). 25403 254042012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25405 25406 * docs/reference/libs/libs-sections.txt: 25407 docs: add missing entries for the JPEG decoder. 25408 254092012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25410 25411 * configure.ac: 25412 * gst-libs/gst/vaapi/Makefile.am: 25413 * gst/vaapi/gstvaapidecode.c: 25414 * tests/test-decode.c: 25415 * tests/test-subpicture.c: 25416 Drop all references to USE_CODEC_PARSERS. 25417 254182012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25419 25420 * NEWS: 25421 * configure.ac: 25422 * docs/reference/libs/libs-sections.txt: 25423 * docs/reference/libs/libs.core.types: 25424 * gst-libs/gst/vaapi/Makefile.am: 25425 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 25426 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 25427 * gst/vaapi/gstvaapidecode.c: 25428 * gst/vaapi/gstvaapidecode.h: 25429 * tests/test-decode.c: 25430 * tests/test-subpicture.c: 25431 Drop FFmpeg-based decoders. 25432 GStreamer codecparsers-based decoders are the only supported decoders now. 25433 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series. 25434 254352012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org> 25436 25437 * configure.ac: 25438 * debian.upstream/control.in: 25439 configure: bump glib required version to 2.28. 25440 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25441 254422012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org> 25443 25444 * gst/vaapi/gstvaapidecode.h: 25445 * gst/vaapi/gstvaapidownload.h: 25446 * gst/vaapi/gstvaapipostproc.h: 25447 * gst/vaapi/gstvaapisink.h: 25448 * gst/vaapi/gstvaapiupload.h: 25449 plugins: declare _get_type() functions as const. 25450 Declaring a function as const enables better optimization of calls to 25451 the function. 25452 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25453 254542012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org> 25455 25456 * gst/vaapi/gstvaapidecode.c: 25457 * gst/vaapi/gstvaapidownload.c: 25458 * gst/vaapi/gstvaapipostproc.c: 25459 * gst/vaapi/gstvaapisink.c: 25460 * gst/vaapi/gstvaapiupload.c: 25461 plugins: use g_clear_object() wherever applicable. 25462 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25463 254642012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org> 25465 25466 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 25467 * gst-libs/gst/vaapi/gstvaapicontext.h: 25468 * gst-libs/gst/vaapi/gstvaapidecoder.h: 25469 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 25470 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 25471 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 25472 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: 25473 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 25474 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 25475 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 25476 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 25477 * gst-libs/gst/vaapi/gstvaapidisplay.h: 25478 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 25479 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 25480 * gst-libs/gst/vaapi/gstvaapiimage.h: 25481 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 25482 * gst-libs/gst/vaapi/gstvaapiobject.h: 25483 * gst-libs/gst/vaapi/gstvaapiparamspecs.h: 25484 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 25485 * gst-libs/gst/vaapi/gstvaapisurface.h: 25486 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 25487 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 25488 * gst-libs/gst/vaapi/gstvaapitexture.h: 25489 * gst-libs/gst/vaapi/gstvaapivalue.h: 25490 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 25491 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: 25492 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: 25493 * gst-libs/gst/vaapi/gstvaapivideopool.h: 25494 * gst-libs/gst/vaapi/gstvaapivideosink.h: 25495 * gst-libs/gst/vaapi/gstvaapiwindow.h: 25496 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 25497 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 25498 libs: declare _get_type() functions as const. 25499 Declaring a function as const enables better optimization of calls 25500 to the function. 25501 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25502 255032012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org> 25504 25505 * gst-libs/gst/vaapi/glibcompat.h: 25506 * gst-libs/gst/vaapi/gstvaapicontext.c: 25507 * gst-libs/gst/vaapi/gstvaapidisplay.c: 25508 * gst-libs/gst/vaapi/gstvaapiobject.c: 25509 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 25510 * gst-libs/gst/vaapi/gstvaapisurface.c: 25511 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 25512 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 25513 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 25514 * gst-libs/gst/vaapi/gstvaapivideopool.c: 25515 libs: use g_clear_object() wherever applicable. 25516 This is a preferred thread-safe version. Also add an inline version of 25517 g_clear_object() if compiling with glib < 2.28. 25518 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25519 255202012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org> 25521 25522 * .gitignore: 25523 * configure.ac: 25524 * docs/reference/libs/Makefile.am: 25525 * gst-libs/gst/vaapi/Makefile.am: 25526 * gst-libs/gst/vaapi/gstvaapimarshal.list: 25527 * gst-libs/gst/vaapi/gstvaapiobject.c: 25528 libs: use generic g_cclosure_marshal_VOID__VOID(). 25529 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25530 255312012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25532 25533 * configure.ac: 25534 * gst-libs/gst/vaapi/glibcompat.h: 25535 glibcompat: drop explicit check for g_list_free_full(). 25536 255372012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25538 25539 * configure.ac: 25540 Bump version for development. 25541 255422012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25543 25544 * gst-libs/gst/codecparsers/Makefile.am: 25545 jpeg: fix make dist. 25546 255472012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org> 25548 25549 * autogen.sh: 25550 * configure.ac: 25551 * docs/Makefile.am: 25552 configure: fix build without gtk-doc support. 25553 Also do not generate tamplate files as all the documentation is inline. 25554 Drop un-needed code in autogen.sh as well. 25555 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25556 255572012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org> 25558 25559 * Makefile.am: 25560 * autogen.sh: 25561 * configure.ac: 25562 configure: put m4 macros and autogenerated files into m4/ directory. 25563 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25564 255652012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org> 25566 25567 * configure.ac: 25568 configure: drop deprecated autoconf macros. 25569 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro. 25570 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25571 255722012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org> 25573 25574 * configure.ac: 25575 configure: don't use AC_SUBST for some variables. 25576 PKG_CHECK_MODULES already does this for us. 25577 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25578 255792012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25580 25581 * gst/vaapi/gstvaapidecode.c: 25582 * gst/vaapi/gstvaapidownload.c: 25583 * gst/vaapi/gstvaapipostproc.c: 25584 * gst/vaapi/gstvaapiupload.c: 25585 plugins: add support for GstImplementsInterface. 25586 255872012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org> 25588 25589 * configure.ac: 25590 * gst/vaapi/gstvaapidecode.c: 25591 * gst/vaapi/gstvaapidownload.c: 25592 * gst/vaapi/gstvaapipostproc.c: 25593 * gst/vaapi/gstvaapisink.c: 25594 * gst/vaapi/gstvaapiupload.c: 25595 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*. 25596 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25597 255982012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org> 25599 25600 * configure.ac: 25601 * gst/vaapi/gstvaapisink.c: 25602 plugins: do not use deprecated GStreamer -base symbols. 25603 Bump GStreamer plugins -base required version to 0.10.31, needed for 25604 gst_x_overlay_got_window_handle(). 25605 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25606 256072012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org> 25608 25609 * configure.ac: 25610 * gst/vaapi/gstvaapidecode.c: 25611 * gst/vaapi/gstvaapidownload.c: 25612 * gst/vaapi/gstvaapipostproc.c: 25613 * gst/vaapi/gstvaapisink.c: 25614 * gst/vaapi/gstvaapiupload.c: 25615 plugins: do not use deprecated core GStreamer symbols. 25616 Bump GStreamer required version to 0.10.14, needed for 25617 gst_element_class_set_details_simple(). 25618 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25619 256202012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25621 25622 * tests/test-decode.c: 25623 tests: fix build without JPEG decoder support. 25624 256252012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25626 25627 * tests/Makefile.am: 25628 * tests/test-decode.c: 25629 * tests/test-jpeg.c: 25630 * tests/test-jpeg.h: 25631 tests: add test for JPEG decoding. 25632 256332012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25634 25635 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25636 jpeg: update to match latest parser API. 25637 256382012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25639 25640 * gst-libs/gst/codecparsers/gstjpegparser.c: 25641 * gst-libs/gst/codecparsers/gstjpegparser.h: 25642 codecparsers: jpeg: tweak parser API. 25643 ... to allow for more consistent parsing API among various codec parsers. 25644 In particular, drop use of GList. 25645 256462012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25647 25648 * configure.ac: 25649 jpeg: fix configure check for VA/JPEG decoding API. 25650 256512012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25652 25653 * gst-libs/gst/vaapi/gstvaapiprofile.c: 25654 jpeg: fix build with VA-API < 0.32.0. 25655 256562012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25657 25658 * NEWS: 25659 NEWS: updates. 25660 256612012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25662 25663 * configure.ac: 25664 Bump version for development. 25665 256662012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25667 25668 * NEWS: 25669 * configure.ac: 25670 0.3.7. 25671 256722012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25673 25674 * NEWS: 25675 NEWS: updates. 25676 256772012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com> 25678 25679 * gst/vaapi/gstvaapipluginutil.c: 25680 vaapiplugin: fix build when compiling without GLX. 25681 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25682 256832012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25684 25685 * configure.ac: 25686 configure: disable FFmpeg-based decoders. 25687 FFmpeg decoders are still available through the --enable-ffmpeg option 25688 but are no longer maintained. 25689 256902012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25691 25692 * gst-libs/gst/vaapi/Makefile.am: 25693 Fix build with recent GStreamer stack. 25694 256952012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25696 25697 * configure.ac: 25698 * gst-libs/gst/vaapi/gstvaapicompat.h: 25699 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25700 jpeg: update to current VA/JPEG decoding API. 25701 257022012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25703 25704 * gst-libs/gst/codecparsers/gstjpegparser.c: 25705 * gst-libs/gst/codecparsers/gstjpegparser.h: 25706 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25707 codecparsers: jpeg: track valid quantization and Huffman tables. 25708 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that 25709 to determine whether a table actually changed since the last user 25710 synchronization point. That way, this makes it possible for some 25711 hardware accelerated decoding solution to upload only those tables 25712 that changed. 25713 257142012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com> 25715 25716 * gst-libs/gst/codecparsers/gstjpegparser.c: 25717 codecparsers: jpeg: use U_READ_UINT*() wherever possible. 25718 Use GstByteReader *_unchecked() variants as much as possible. 25719 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25720 257212012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com> 25722 25723 * gst-libs/gst/codecparsers/gstjpegparser.c: 25724 * gst-libs/gst/codecparsers/gstjpegparser.h: 25725 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25726 jpeg: add new GstJpegHuffmanTables structure. 25727 Add new GstJpegHuffmanTables helper structure to hold all possible 25728 AC/DC Huffman tables available to all components. 25729 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25730 257312012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com> 25732 25733 * gst-libs/gst/codecparsers/gstjpegparser.c: 25734 * gst-libs/gst/codecparsers/gstjpegparser.h: 25735 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25736 jpeg: make gst_jpeg_parse() support multiple scans. 25737 gst_jpeg_parse() now gathers all scans available in the supplied 25738 buffer. A scan comprises of the scan header and any entropy-coded 25739 segments or restart marker following it. The size and offset to 25740 the associated data (ECS + RST segments) are append to a new 25741 GstJpegScanOffsetSize structure. 25742 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25743 257442012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com> 25745 25746 * gst-libs/gst/codecparsers/gstjpegparser.c: 25747 * gst-libs/gst/codecparsers/gstjpegparser.h: 25748 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25749 jpeg: update to match latest parser API. 25750 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25751 257522012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25753 25754 * gst-libs/gst/codecparsers/gstjpegparser.h: 25755 jpeg: simplify and optimize parser API. 25756 257572012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com> 25758 25759 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 25760 mpeg: fix picture used to determine backward_reference_vop_coding_type. 25761 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5 25762 but Gwenole did not apply all the bits. 25763 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25764 257652012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com> 25766 25767 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 25768 mpeg4: map Simple_Scalable profile to Advanced_Simple profile. 25769 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25770 257712012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com> 25772 25773 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 25774 mpeg4: handle skipped frames (vop_hdr->coded = 0). 25775 Gracefully skip non VOP coded frames. 25776 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25777 257782012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com> 25779 25780 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 25781 mpeg4: fix timestamp issues on too fast playback. 25782 Improve generation of presentation timestamps to be less sensitive 25783 to input stream errors. In practise, GOP is also a synchronization 25784 point for PTS calculation. 25785 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25786 257872012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25788 25789 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 25790 Fix build without JPEG decoder. 25791 257922012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com> 25793 25794 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 25795 mpeg4: fix VOP coding type of backward reference pictures. 25796 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25797 257982012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com> 25799 25800 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 25801 mpeg4: fix handling of temporal reference distances. 25802 TRD and TRB fields are not large enough to hold the difference of PTS 25803 expressed with nanosecond resolution. So, compute them from the original 25804 VOP info. 25805 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25806 258072012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25808 25809 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 25810 dpb: mpeg2: cosmetics. 25811 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around. 25812 258132012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com> 25814 25815 * configure.ac: 25816 * gst-libs/gst/vaapi/Makefile.am: 25817 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 25818 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 25819 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c: 25820 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h: 25821 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 25822 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 25823 * gst-libs/gst/vaapi/gstvaapiprofile.c: 25824 * gst-libs/gst/vaapi/gstvaapiprofile.h: 25825 * gst/vaapi/gstvaapidecode.c: 25826 Add initial JPEG decoder. 25827 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25828 258292012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com> 25830 25831 * configure.ac: 25832 * gst-libs/gst/Makefile.am: 25833 * gst-libs/gst/codecparsers/Makefile.am: 25834 * gst-libs/gst/codecparsers/gstjpegparser.c: 25835 * gst-libs/gst/codecparsers/gstjpegparser.h: 25836 * gst-libs/gst/vaapi/Makefile.am: 25837 codecparsers: add JPEG parser. 25838 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25839 258402012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com> 25841 25842 * gst/vaapi/gstvaapidecode.c: 25843 vaapidecode: fix VA display type. 25844 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay 25845 wrapper. 25846 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25847 258482012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25849 25850 * gst/vaapi/gstvaapidecode.c: 25851 vaapidecode: fix includes when compiling for a single API. 25852 258532012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25854 25855 * NEWS: 25856 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25857 mpeg2: fix calculation of macroblock_offset. 25858 Fix decoding of streams with extra slice() information before the first 25859 macroblock(). e.g. this fixes sony-ct3.bs from conformance test. 25860 258612012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25862 25863 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25864 mpeg2: fix interpolation of GOP TSN from new PTS. 25865 New GOP TSN base could be mis-calculated. In particular, this fixes 25866 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>. 25867 258682012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25869 25870 * NEWS: 25871 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25872 * gst-libs/gst/vaapi/gstvaapiprofile.h: 25873 mpeg2: fix decoding of high profile streams. 25874 Allow MPEG-2 High profile streams only if the HW supports that profile 25875 or no High profile specific bits are used, and thus Main profile could 25876 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not 25877 set to 11 and no sequence_scalable_extension() was parsed. 25878 258792012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25880 25881 * NEWS: 25882 * gst/vaapi/gstvaapidecode.c: 25883 vaapidecode: report unsupported codec profiles. 25884 Try to gracefully abort when the HW does not support the requested 25885 profile. There is no fallback unless profiles are correctly parsed 25886 and matched through caps beforehand. 25887 258882012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de> 25889 25890 * NEWS: 25891 * gst/vaapi/gstvaapisink.c: 25892 vaapisink: don't resize a 'foreign' X-window. 25893 Don't forcibly resize foreign X windows. The user is responsible for 25894 their size and vaapisink shall not change this. 25895 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25896 258972012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de> 25898 25899 * NEWS: 25900 * gst/vaapi/gstvaapisink.c: 25901 * gst/vaapi/gstvaapisink.h: 25902 vaapisink: recalculate render rect only if caps are negotiated. 25903 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before 25904 caps got negotiated. Besides, when a foreign window is provided by the 25905 user, so should the render rect. 25906 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25907 259082012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25909 25910 * configure.ac: 25911 Bump version for development. 25912 259132012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25914 25915 * configure.ac: 25916 0.3.6. 25917 259182012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25919 25920 * docs/reference/libs/libs-docs.xml.in: 25921 * docs/reference/libs/libs-sections.txt: 25922 * docs/reference/plugins/plugins-docs.xml.in: 25923 * docs/reference/plugins/plugins-sections.txt: 25924 * docs/reference/plugins/plugins.types: 25925 * gst-libs/gst/vaapi/gstvaapiimage.c: 25926 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 25927 * gst/vaapi/gstvaapipostproc.c: 25928 Fix a few documentation issues. 25929 259302012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25931 25932 * NEWS: 25933 * README: 25934 Update introduction and changelog. 25935 259362012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25937 25938 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 25939 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 25940 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25941 mpeg2: allocate dummy picture for first field based I-frame. 25942 In P-pictures, prediction shall be made from the two most recently 25943 decoded reference fields. However, when the first I-frame is a field, 25944 the next field of the current picture could be a P-picture but only a 25945 single field was decoded so far. In this case, create a dummy picture 25946 with POC = -1 that will be used as reference. 25947 Some VA drivers would error out if P-pictures don't have a forward 25948 reference picture. This is true in general but not in this very specific 25949 initial case. 25950 259512012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25952 25953 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25954 mpeg2: fix simple to main profile fallback. 25955 Allow fallback from simple to main profile when the HW decoder does 25956 not support the former profile and that no sequence_header_extension() 25957 is available to point out this. 25958 259592012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com> 25960 25961 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 25962 mpeg4: improve error checking while decoding packets. 25963 decode_picture() could return an error when an MPEG-4 profile is not 25964 supported for example. In this case, the underlying VA context is not 25965 allocated and no other proper action can be taken. Likewise on exit 25966 from decode_slice(). 25967 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25968 259692012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25970 25971 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 25972 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25973 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 25974 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 25975 decoder: use POC to maintain the DPB. 25976 Introduce a POC field in GstVaapiPicture so that to store simpler sequential 25977 numbers. A signed 32-bit integer should be enough for 1 year of continuous 25978 video streaming at 60 Hz. 25979 Use this new POC value to maintain the DPB, instead of 64-bit timestamps. 25980 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure. 25981 259822012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25983 25984 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25985 mpeg2: rework generation of presentation timestamps. 25986 Always prefer PTS from the demuxer layer for GOP times. If this is invalid, 25987 i.e. demuxer could not determine the PTS or the generated PTS is lower than 25988 max PTS from past pictures, then try to fix it up based on the duration of 25989 a frame. 25990 For picture PTS, simply use the GOP PTS formerly computed then use TSN to 25991 reconstruct a current time. Also now handle wrapped TSN correctly. 25992 259932012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 25994 25995 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 25996 mpeg2: ignore empty user-data packets. 25997 Fix tcela-8.bits conformance test. 25998 259992012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26000 26001 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26002 mpeg2: review and report errors accordingly. 26003 Use GST_ERROR() to report real errors instead of hiding them into 26004 GST_DEBUG(). 26005 260062012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26007 26008 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26009 mpeg2: fix invalid interlaced frame in progressive sequence. 26010 Some streams, badly constructed, could have signaled an interlaced 26011 frame while the sequence was meant to be progressive. Warn and force 26012 frame to be progressive in this case. 26013 260142012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26015 26016 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26017 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26018 mpeg2: add support for interlaced streams. 26019 Pictures are submitted to the HW for rendering only when both fields 26020 are decoded or current picture is a full frame. 26021 260222012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26023 26024 * gst-libs/gst/vaapi/Makefile.am: 26025 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c: 26026 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h: 26027 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26028 mpeg2: add new decoded picture buffer infrastructure. 26029 Decoded pictures are now maintained into DPB, similarly to H.264. 26030 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs. 26031 260322012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26033 26034 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26035 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26036 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26037 decoder: add first-field flag to picture. 26038 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field 26039 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered 26040 as the first field. Any subsequent allocated field will become the second field. 26041 260422012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26043 26044 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 26045 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 26046 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26047 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26048 decoder: allow pictures to be cloned for field decoding. 26049 Add gst_vaapi_picture_new_field() function that clones a picture, while 26050 preserving the parent picture surface. i.e. the surface proxy reference 26051 count is increased and other fields copied as is. Besides, the picture 26052 is reset into a "non-output" mode. 26053 260542012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26055 26056 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26057 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26058 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26059 decoder: rework picture field flags. 26060 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they 26061 could be propagated to the surface proxy when it is pushed for rendering. 26062 Besides, top and bottom fields are now expressed with picture structure flags 26063 from GstVaapiSurfaceRenderFlags. 26064 260652012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26066 26067 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26068 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26069 decoder: add OUTPUT flag to pictures. 26070 Allow pictures to be marked as output gst_vaapi_picture_output(). 26071 260722012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26073 26074 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26075 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26076 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26077 decoder: fix semantics of SKIPPED pictures. 26078 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output() 26079 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame 26080 has nothing to do with rendering. This only means that the currently decoded 26081 picture is just a copy of its reference picture. 26082 260832012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26084 26085 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 26086 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 26087 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 26088 * gst/vaapi/gstvaapipostproc.c: 26089 vaapipostproc: get "interlaced" attribute from surface proxy. 26090 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in 26091 vaapipostproc so that to handles cases where bitstream is interlaced 26092 but almost only frame pictures are generated. In this case, we should 26093 not be alternating between top/bottom fields. 26094 260952012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26096 26097 * README: 26098 * debian.upstream/control.in: 26099 * gst/vaapi/Makefile.am: 26100 * gst/vaapi/gstvaapi.c: 26101 * gst/vaapi/gstvaapipostproc.c: 26102 * gst/vaapi/gstvaapipostproc.h: 26103 vaapipostproc: add new element for video postprocessing. 26104 Add vaapipostproc element for video postprocessing. So far, only basic 26105 bob deinterlacing is implemented. Interlaced mode is automatically 26106 detected based on sink caps ("interlaced" field). 26107 261082012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26109 26110 * docs/reference/libs/libs-sections.txt: 26111 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 26112 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 26113 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 26114 * gst/vaapi/gstvaapisink.c: 26115 videobuffer: add surface render flags. 26116 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags, 26117 to be set to the video buffer. In particular, this is mostly useful for 26118 basic deinterlacing. 26119 261202012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26121 26122 * gst-libs/gst/vaapi/gstvaapicompat.h: 26123 compat: add compatibility glue with VA-API 0.34+ (WIP). 26124 261252012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26126 26127 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26128 h264: skip all Filler Data NALs. 26129 261302012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com> 26131 26132 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 26133 mpeg4: check for decoder status prior to decoding packet. 26134 Make sure there is a VA surface free prior to decoding the current frame. 26135 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26136 261372012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com> 26138 26139 * gst/vaapi/gstvaapidecode.c: 26140 * gst/vaapi/gstvaapidecode.h: 26141 decode: delay NEWSEGMENT event if vaapidecode element was not linked. 26142 Rationale: playbin2 links all elements at run-time. Once vaapidecode 26143 is created and a NEWSEGMENT event arrives, downstream element may not 26144 be ready yet. So, delay this event until next element is chained in, 26145 otherwise basesink could output "Received buffer without a new-segment. 26146 Assuming timestamps start from 0". 26147 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26148 261492012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com> 26150 26151 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26152 mpeg2: fix GOP timestamps when incorrect data is received. 26153 Some streams have incorrect GOP timestamps, or nothing set at all. 26154 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case 26155 from demuxer timestamps, which are monotonic. 26156 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26157 261582012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com> 26159 26160 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26161 mpeg2: don't decode anything before the first sequence_header(). 26162 Skip all pictures prior to the first sequence_header(). Besides, 26163 skip all picture_data() if there was no prior picture_header(). 26164 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26165 261662012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de> 26167 26168 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 26169 ffmpeg: add support for interlaced streams. 26170 Evaluate interlaced stream properties. 26171 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26172 261732012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de> 26174 26175 * gst/vaapi/gstvaapidecode.c: 26176 vaapidecode: propagate interlaced and TFF properties downstream. 26177 Propagate "interlaced" caps downstream and set "tff" buffer flag 26178 appropriately to output buffers for interlaced pictures. 26179 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26180 261812012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de> 26182 26183 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26184 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26185 decoder: maintain caps for interlaced streams. 26186 Extend GstVaapiDecoder base object to maintain caps with "interlaced" 26187 property. 26188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26189 261902012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de> 26191 26192 * docs/reference/libs/libs-sections.txt: 26193 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 26194 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 26195 surfaceproxy: add TFF property. 26196 Add TFF (top-field-first) property to GstVaapiSurfaceProxy. 26197 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26198 261992012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26200 26201 * AUTHORS: 26202 AUTHORS: update to match current authors. 26203 262042012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26205 26206 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26207 mpeg2: fix is_first_field calculation. 26208 Reset is_first_field for frame pictures. Factor out locations where 26209 the flag is updated. 26210 262112012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26212 26213 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26214 mpeg2: catch incorrect picture_structure from bitstreams. 26215 Assume "frame" picture structure if the syntax element was zero or if 26216 progressive_frame is set. 26217 262182012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26219 26220 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26221 mpeg2: fix slice_vertical_position calculation (again). 26222 VA-API expects slice_vertical_position as the initial position from the 26223 bitstream. i.e. the direct slice() information. VA drivers will be fixed 26224 accordingly. 26225 262262012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26227 26228 * gst/vaapi/gstvaapidecode.c: 26229 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer) 26230 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437. 26231 For gst_element_class_get_pad_template(), no unreferencing is necessary 26232 according to the GStreamer documentation. 26233 262342012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26235 26236 * configure.ac: 26237 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26238 h264: fix slice_data_bit_offset calculation. 26239 Unlike what VA-API documentation defines, the slice_data_bit_offset 26240 represents the offset to the first macroblock in the slice data, minus 26241 any emulation prevention bytes in the slice_header(). 26242 This fix copes with binary-only VA drivers that won't be fixed any 26243 time soon. Besides, this aligns with the current FFmpeg behaviour 26244 that was based on those proprietary drivers implementing the API 26245 incorrectly. 26246 262472012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com> 26248 26249 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26250 h264: skip all Access Unit (AU) NALs. 26251 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26252 262532012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com> 26254 26255 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26256 h264: fix modification process of reference picture lists. 26257 Construction of RefPicList0/1 could be off by one element. 26258 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26259 262602012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 26261 26262 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26263 mpeg2: fix size calculation from sequence_extension(). 26264 Original values from sequence_header() are 12-bit and the remaining 26265 2 most significant bits are coming from sequence_extension(). 26266 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26267 262682012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26269 26270 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26271 mpeg2: fix slice_vertical_position calculation. 26272 Make sure to adjust slice_vertical_position if picture structure 26273 is a top or bottom field. 26274 262752012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26276 26277 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26278 decoder: add picture structure flags. 26279 262802012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26281 26282 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26283 mpeg2: fix decoding at end-of-sequence. 26284 262852012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26286 26287 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26288 mpeg2: fix slice_horizontal_position calculation. 26289 262902012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26291 26292 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26293 mpeg2: drop useless mb_y and mb_height members. 26294 262952012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26296 26297 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26298 mpeg2: fix decoding of multiple slices with same slice_vertical_position. 26299 6.3.15 says that "some slices may have the same slice_vertical_position, 26300 since slices may start and finish anywhere". So, we can't submit the current 26301 picture to the HW right away since subsequent slices would be missing. 26302 263032012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26304 26305 * gst-libs/gst/vaapi/gstvaapiimage.c: 26306 image: fix source stride in picture copy. 26307 263082012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26309 26310 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26311 decoder: fix double buffer free with some VA drivers. 26312 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would 26313 push the VA buffer object into a list of free buffers to be re-used. However, 26314 reference pictures (and data) that was kept would explicitly release the VA 26315 buffer object later on, thus possibly destroying a valid (re-used) object. 26316 Besides, some other VA drivers don't support correctly the vaRenderPicture() 26317 semantics for VA buffers disposal and would leak memory if there is no explicit 26318 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers 26319 right after vaRenderPicture(). All VA drivers need to be aligned. 26320 263212012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26322 26323 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26324 h264: complete any current picture decoder before SPS / PPS change. 26325 This ensures the VA context is clear when the encoded resolution 26326 changes. i.e. make sure older picture is decoded with the older 26327 VA context before it changes. 26328 263292012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26330 26331 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26332 h264: create VA context earlier when SPS is parsed. 26333 263342012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26335 26336 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26337 h264: don't allocate too big data structures on stack. 26338 263392012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26340 26341 * gst-libs/gst/vaapi/glibcompat.h: 26342 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26343 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 26344 glib: map deprecated API to glib >= 2.32 equivalents. 26345 GStaticMutex and GStaticRecMutex are now replaced with GMutex and 26346 GRecMutex, which no longer require any prior call to g_thread_init(). 26347 263482012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26349 26350 * gst-libs/gst/vaapi/gstvaapiutils.h: 26351 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 26352 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 26353 glib: fix includes. 26354 263552012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26356 26357 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 26358 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26359 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 26360 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26361 cosmetics: fix warnings (drop unused variables). 26362 263632012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26364 26365 * gst/vaapi/gstvaapidecode.c: 26366 vaapidecode: fix another pad template ref leak. 26367 263682012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26369 26370 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26371 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26372 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26373 mpeg2: fix crash when there is no free surface to decode into. 26374 263752012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com> 26376 26377 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26378 display: skip profiles which have no entrypoints. 26379 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26380 263812012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26382 26383 * gst/vaapi/gstvaapiupload.c: 26384 vaapiupload: use g_object_unref() for GstVaapiImage. 26385 263862012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26387 26388 * gst/vaapi/gstvaapidecode.c: 26389 * gst/vaapi/gstvaapidownload.c: 26390 * gst/vaapi/gstvaapisink.c: 26391 * gst/vaapi/gstvaapiupload.c: 26392 plugins: fix pad template ref leaks. 26393 263942012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26395 26396 * configure.ac: 26397 Bump version for development. 26398 263992012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26400 26401 * NEWS: 26402 * configure.ac: 26403 0.3.4. 26404 264052012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26406 26407 * README: 26408 README: updates. 26409 Mention codecparsers-based decoders, FFmpeg is now optional. Update 26410 list of support HW. 26411 264122012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26413 26414 * NEWS: 26415 NEWS: updates. 26416 264172012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26418 26419 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26420 decoder: allocate proxy surface earlier. 26421 This simplifies gst_vaapi_picture_output() to only update the presentation 26422 timestamp and submit the proxy to the decoder for output. 26423 264242012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26425 26426 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26427 decoder: fix memory leak of VA objects on exit. 26428 On sequence end, if the last decoded picture is not output for rendering, 26429 then the proxy surface is not created. In this case, the original surface 26430 must be released explicitly to the context. 26431 264322012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26433 26434 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26435 mpeg2: use GstAdapter to track input sequence. 26436 This fixes possible memory leaks and improves performance by removing 26437 some extra copies. 26438 264392012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26440 26441 * configure.ac: 26442 * gst-libs/gst/vaapi/Makefile.am: 26443 * gst-libs/gst/vaapi/glibcompat.h: 26444 * gst-libs/gst/vaapi/sysdeps.h: 26445 Add glib compatibility glue for older versions. 26446 264472012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26448 26449 * gst-libs/gst/vaapi/Makefile.am: 26450 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 26451 * gst-libs/gst/vaapi/gstvaapicontext.c: 26452 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26453 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 26454 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26455 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26456 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 26457 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26458 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26459 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26460 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 26461 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 26462 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 26463 * gst-libs/gst/vaapi/gstvaapiimage.c: 26464 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 26465 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 26466 * gst-libs/gst/vaapi/gstvaapiobject.c: 26467 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 26468 * gst-libs/gst/vaapi/gstvaapiprofile.c: 26469 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 26470 * gst-libs/gst/vaapi/gstvaapisurface.c: 26471 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 26472 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 26473 * gst-libs/gst/vaapi/gstvaapitexture.c: 26474 * gst-libs/gst/vaapi/gstvaapiutils.c: 26475 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 26476 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 26477 * gst-libs/gst/vaapi/gstvaapivalue.c: 26478 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 26479 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: 26480 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 26481 * gst-libs/gst/vaapi/gstvaapivideopool.c: 26482 * gst-libs/gst/vaapi/gstvaapivideosink.c: 26483 * gst-libs/gst/vaapi/gstvaapiwindow.c: 26484 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 26485 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 26486 * gst-libs/gst/vaapi/sysdeps.h: 26487 Add header for system-dependent definitions. 26488 264892012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26490 26491 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 26492 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26493 * gst-libs/gst/vaapi/gstvaapiutils.c: 26494 * gst-libs/gst/vaapi/gstvaapiutils.h: 26495 decoder: optimize slice data buffers initialization. 26496 VA drivers may have a faster means to transfer user buffers to GPU 26497 buffers than using memcpy(). In particular, on Intel Gen graphics, we 26498 can use pwrite(). This provides for faster upload of bitstream and can 26499 help higher bitrates. 26500 vaapi_create_buffer() helper function was also updated to allow for 26501 un-mapped buffers and pre-initialized data for buffers. 26502 265032012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26504 26505 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26506 h264: simplify RefPicList reconstruction. 26507 265082012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26509 26510 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26511 h264: flush DPB when the end of the sequence is reached. 26512 265132012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26514 26515 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26516 h264: handle Decoded Picture Buffer (DPB). 26517 265182012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26519 26520 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26521 h264: fix pred_weight_table() reconstruction. 26522 Only the explicit pred_weight_table(), possibly with the inferred default 26523 values, shall be required. e.g. don't fill in the table if weighted_pred_flag 26524 is not set for P/SP slices. 26525 265262012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26527 26528 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26529 h264: execute reference picture marking process (MMCO). 26530 265312012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26532 26533 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26534 h264: fix presentation timestamps. 26535 265362012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26537 26538 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26539 h264: execute reference picture marking process (sliding window). 26540 265412012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26542 26543 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26544 h264: handle avcC format for decoding buffers. 26545 265462011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 26547 26548 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26549 h264: handle codec-data. 26550 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26551 265522011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26553 26554 * gst-libs/gst/vaapi/Makefile.am: 26555 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c: 26556 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h: 26557 * gst/vaapi/gstvaapidecode.c: 26558 * tests/test-decode.c: 26559 Add initial H.264 decoder. 26560 265612012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26562 26563 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26564 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26565 decoder: retain proxy surface until the GstVaapiPicture is destroyed. 26566 Keep a valid reference to the proxy in GstVaapiPicture so that frames 26567 marked as "used for reference" could be kept during the lifetime of the 26568 picture. i.e. don't release them too soon as they could be re-used right 26569 away. 26570 265712012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26572 26573 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26574 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 26575 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26576 decoder: properly reference count pictures. 26577 This fixes cases where a GstVaapiPicture would be destroyed whereas 26578 there is still a valid instance of it in either prev, current or 26579 next picture. 26580 265812012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26582 26583 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26584 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 26585 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26586 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26587 decoder: simplify output of decoded frames. 26588 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used. 26589 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS 26590 is already set correctly and reference count increased, if necessary. 26591 265922012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26593 26594 * gst-libs/gst/vaapi/Makefile.am: 26595 * gst-libs/gst/vaapi/gstvaapicodec_objects.c: 26596 * gst-libs/gst/vaapi/gstvaapicodec_objects.h: 26597 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26598 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26599 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 26600 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c: 26601 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h: 26602 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26603 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26604 decoder: rework the internal VA objects API. 26605 The new API simplifies a lot reference counting and makes it more 26606 flexible for future additions/changes. The GstVaapiCodecInfo is 26607 also gone. Rather, new helper macros are provided to allocate 26608 picture, slice and quantization matrix parameter buffers. 26609 266102012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26611 26612 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26613 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26614 decoder: allow slices to be attached to pictures later. 26615 266162011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26617 26618 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26619 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26620 decoder: add ref_count to GstVaapiPicture. 26621 266222012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26623 26624 * gst/vaapi/gstvaapisink.c: 26625 vaapisink: cap window size to the maximum display size. 26626 266272012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com> 26628 26629 * gst-libs/gst/vaapi/gstvaapiprofile.c: 26630 * gst-libs/gst/vaapi/gstvaapiworkarounds.h: 26631 profile: match video/x-h263 as H.263 Baseline profile. 26632 HACK: qtdemux does not report profiles for H.263. So, assume plain 26633 "video/x-h263" is H.263 Baseline profile. 26634 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26635 266362012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26637 26638 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26639 * gst-libs/gst/vaapi/gstvaapiworkarounds.h: 26640 display: report H.263 Baseline profile. 26641 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple 26642 profile (VAProfileMPEG4Simple) is supported. 26643 266442012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26645 26646 * gst-libs/gst/vaapi/Makefile.am: 26647 * gst-libs/gst/vaapi/gstvaapiworkarounds.h: 26648 Add template for workarounds. 26649 266502012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26651 26652 * tests/test-decode.c: 26653 tests: error out if FFmpeg|codecparsers are not supported. 26654 266552012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26656 26657 * docs/reference/libs/libs-sections.txt: 26658 * gst-libs/gst/vaapi/gstvaapisurface.h: 26659 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 26660 surface: don't expose gst_vaapi_surface_get_parent_context(). 26661 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally. 26662 It's just an internal helper function. However, it's still possible to get 26663 the parent context through the "parent-context" property. 26664 266652012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26666 26667 * tests/Makefile.am: 26668 * tests/test-subpicture.c: 26669 tests: fix build without FFmpeg. 26670 266712012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26672 26673 * configure.ac: 26674 Bump version for development. 26675 266762012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26677 26678 * NEWS: 26679 * configure.ac: 26680 0.3.3. 26681 266822012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26683 26684 * README: 26685 * debian.upstream/copyright: 26686 * gst-libs/gst/vaapi/gstvaapicontext.c: 26687 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26688 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 26689 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26690 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26691 * gst-libs/gst/vaapi/gstvaapidisplay.h: 26692 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 26693 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 26694 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 26695 * gst-libs/gst/vaapi/gstvaapiimage.c: 26696 * gst-libs/gst/vaapi/gstvaapiimage.h: 26697 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 26698 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 26699 * gst-libs/gst/vaapi/gstvaapiutils.c: 26700 * gst-libs/gst/vaapi/gstvaapiutils.h: 26701 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 26702 * gst-libs/gst/vaapi/gstvaapiwindow.c: 26703 * gst/vaapi/gstvaapi.c: 26704 * gst/vaapi/gstvaapidecode.c: 26705 * gst/vaapi/gstvaapidownload.c: 26706 * gst/vaapi/gstvaapidownload.h: 26707 * gst/vaapi/gstvaapipluginutil.c: 26708 * gst/vaapi/gstvaapipluginutil.h: 26709 * gst/vaapi/gstvaapisink.c: 26710 * gst/vaapi/gstvaapiupload.c: 26711 * gst/vaapi/gstvaapiupload.h: 26712 * tests/test-decode.c: 26713 legal: fix year for some copyright notices. 26714 267152012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26716 26717 * gst-libs/gst/vaapi/gstvaapicontext.c: 26718 * gst-libs/gst/vaapi/gstvaapicontext.h: 26719 * gst-libs/gst/vaapi/gstvaapidecoder.h: 26720 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26721 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26722 * gst-libs/gst/vaapi/gstvaapidisplay.h: 26723 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 26724 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 26725 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 26726 * gst-libs/gst/vaapi/gstvaapiimage.c: 26727 * gst-libs/gst/vaapi/gstvaapiimage.h: 26728 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 26729 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 26730 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 26731 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 26732 * gst-libs/gst/vaapi/gstvaapisurface.c: 26733 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 26734 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 26735 * gst-libs/gst/vaapi/gstvaapiutils.c: 26736 * gst-libs/gst/vaapi/gstvaapiutils.h: 26737 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 26738 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 26739 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 26740 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 26741 * gst-libs/gst/vaapi/gstvaapiwindow.c: 26742 * gst/vaapi/gstvaapidownload.h: 26743 * gst/vaapi/gstvaapisink.h: 26744 * gst/vaapi/gstvaapiupload.h: 26745 * tests/test-decode.c: 26746 legal: add Intel copyright on modified files. 26747 267482012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26749 26750 * gst-libs/gst/vaapi/gstvaapi_priv.h: 26751 * gst-libs/gst/vaapi/gstvaapicompat.h: 26752 * gst-libs/gst/vaapi/gstvaapicontext.c: 26753 * gst-libs/gst/vaapi/gstvaapicontext.h: 26754 * gst-libs/gst/vaapi/gstvaapidebug.h: 26755 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26756 * gst-libs/gst/vaapi/gstvaapidecoder.h: 26757 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 26758 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 26759 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26760 * gst-libs/gst/vaapi/gstvaapidisplay.c: 26761 * gst-libs/gst/vaapi/gstvaapidisplay.h: 26762 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 26763 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 26764 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 26765 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 26766 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 26767 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 26768 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 26769 * gst-libs/gst/vaapi/gstvaapiimage.c: 26770 * gst-libs/gst/vaapi/gstvaapiimage.h: 26771 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 26772 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 26773 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 26774 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 26775 * gst-libs/gst/vaapi/gstvaapiobject.c: 26776 * gst-libs/gst/vaapi/gstvaapiobject.h: 26777 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 26778 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 26779 * gst-libs/gst/vaapi/gstvaapiparamspecs.h: 26780 * gst-libs/gst/vaapi/gstvaapiprofile.c: 26781 * gst-libs/gst/vaapi/gstvaapiprofile.h: 26782 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 26783 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 26784 * gst-libs/gst/vaapi/gstvaapisurface.c: 26785 * gst-libs/gst/vaapi/gstvaapisurface.h: 26786 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 26787 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 26788 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 26789 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 26790 * gst-libs/gst/vaapi/gstvaapitexture.c: 26791 * gst-libs/gst/vaapi/gstvaapitexture.h: 26792 * gst-libs/gst/vaapi/gstvaapitypes.h: 26793 * gst-libs/gst/vaapi/gstvaapiutils.c: 26794 * gst-libs/gst/vaapi/gstvaapiutils.h: 26795 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 26796 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 26797 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 26798 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 26799 * gst-libs/gst/vaapi/gstvaapivalue.c: 26800 * gst-libs/gst/vaapi/gstvaapivalue.h: 26801 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 26802 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 26803 * gst-libs/gst/vaapi/gstvaapivideopool.c: 26804 * gst-libs/gst/vaapi/gstvaapivideopool.h: 26805 * gst-libs/gst/vaapi/gstvaapivideosink.c: 26806 * gst-libs/gst/vaapi/gstvaapivideosink.h: 26807 * gst-libs/gst/vaapi/gstvaapiwindow.c: 26808 * gst-libs/gst/vaapi/gstvaapiwindow.h: 26809 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 26810 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 26811 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 26812 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 26813 * gst/vaapi/gstvaapidecode.c: 26814 * gst/vaapi/gstvaapidecode.h: 26815 * gst/vaapi/gstvaapidownload.c: 26816 * gst/vaapi/gstvaapidownload.h: 26817 * gst/vaapi/gstvaapisink.c: 26818 * gst/vaapi/gstvaapisink.h: 26819 * gst/vaapi/gstvaapiupload.c: 26820 * gst/vaapi/gstvaapiupload.h: 26821 * tests/image.c: 26822 * tests/image.h: 26823 * tests/test-decode.c: 26824 * tests/test-decode.h: 26825 * tests/test-display.c: 26826 * tests/test-h264.c: 26827 * tests/test-h264.h: 26828 * tests/test-mpeg2.c: 26829 * tests/test-mpeg2.h: 26830 * tests/test-surfaces.c: 26831 * tests/test-textures.c: 26832 * tests/test-vc1.c: 26833 * tests/test-vc1.h: 26834 * tests/test-windows.c: 26835 legal: fix copyright notices to include "Copyright" term. 26836 268372011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com> 26838 26839 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 26840 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 26841 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24). 26842 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26843 268442011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com> 26845 26846 * gst-libs/gst/vaapi/Makefile.am: 26847 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c: 26848 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h: 26849 * gst/vaapi/gstvaapidecode.c: 26850 Add initial MPEG-4 decoder. 26851 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26852 268532011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 26854 26855 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26856 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 26857 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24). 26858 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26859 268602011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26861 26862 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26863 vc1: fix codec-data decoding for WMV3 format. 26864 268652011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26866 26867 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26868 vc1: fix presentation timestamps. 26869 268702011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26871 26872 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26873 vc1: fix MV mode packing. 26874 268752011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26876 26877 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26878 vc1: handle codec-data. 26879 268802011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26881 26882 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26883 vc1: handle encapsulated bitstreams. 26884 268852011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26886 26887 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26888 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26889 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26890 vc1: fix bitplanes decoding. 26891 268922011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26893 26894 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26895 vc1: fix BFRACTION reconstruction. 26896 268972011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26898 26899 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26900 vc1: fix framerate calculation. 26901 269022011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26903 26904 * gst-libs/gst/vaapi/Makefile.am: 26905 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c: 26906 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h: 26907 * gst/vaapi/gstvaapidecode.c: 26908 * tests/test-decode.c: 26909 Add initial VC-1 decoder. 26910 269112012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com> 26912 26913 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26914 mpeg2: fix first field detection. 26915 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26916 269172012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26918 26919 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26920 mpeg2: fix quantisation matrix construction. 26921 269222011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 26923 26924 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26925 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 26926 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24). 26927 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26928 269292011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26930 26931 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26932 mpeg2: fix packets spanning over two buffers. 26933 269342011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26935 26936 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26937 mpeg2: ignore system start codes (PES headers). 26938 269392011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26940 26941 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26942 mpeg2: handle closed_gop. 26943 269442011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26945 26946 * gst-libs/gst/vaapi/Makefile.am: 26947 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c: 26948 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h: 26949 * gst/vaapi/gstvaapidecode.c: 26950 * tests/test-decode.c: 26951 Add initial MPEG-2 decoder. 26952 269532011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26954 26955 * configure.ac: 26956 * gst-libs/gst/vaapi/Makefile.am: 26957 * gst/vaapi/gstvaapidecode.c: 26958 * tests/test-decode.c: 26959 Allow conditional build of GStreamer/FFmpeg bitstream parsers. 26960 269612011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26962 26963 * gst-libs/gst/vaapi/gstvaapidecoder.c: 26964 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 26965 Add VA decoder helpers. 26966 269672011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26968 26969 * gst-libs/gst/vaapi/gstvaapidecoder.h: 26970 decoder: add new error codes. 26971 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile 26972 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format 26973 269742011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26975 26976 * gst-libs/gst/vaapi/Makefile.am: 26977 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c: 26978 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h: 26979 Add timestamp buffer store helper utils. 26980 269812011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26982 26983 * gst-libs/gst/vaapi/gstvaapiutils.c: 26984 * gst-libs/gst/vaapi/gstvaapiutils.h: 26985 Add VA buffer helpers. 26986 269872012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26988 26989 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 26990 utils: slight improvements to gl_bind_texture(). 26991 269922012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26993 26994 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 26995 utils: pretty-print output of gl_get_error_string(). 26996 269972012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 26998 26999 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 27000 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085. 27001 270022012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27003 27004 * gst-libs/gst/vaapi/gstvaapiutils.c: 27005 utils: simplify string of VAProfile/VAEntrypoint. 27006 270072012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27008 27009 * gst-libs/gst/vaapi/gstvaapidisplay.c: 27010 * gst-libs/gst/vaapi/gstvaapiutils.c: 27011 * gst-libs/gst/vaapi/gstvaapiutils.h: 27012 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers. 27013 270142012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27015 27016 * NEWS: 27017 NEWS: updates. 27018 270192012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27020 27021 * tests/test-decode.c: 27022 tests: check for shared VA displays (display cache). 27023 270242012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27025 27026 * gst-libs/gst/vaapi/gstvaapidisplay.c: 27027 display: always free VA display cache if it is empty. 27028 270292012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27030 27031 * gst-libs/gst/vaapi/gstvaapidisplay.c: 27032 * gst-libs/gst/vaapi/gstvaapidisplay.h: 27033 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 27034 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 27035 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 27036 display: use VA display cache for X11 and GLX winsys. 27037 270382012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27039 27040 * gst-libs/gst/vaapi/Makefile.am: 27041 * gst-libs/gst/vaapi/gstvaapidisplay.h: 27042 * gst-libs/gst/vaapi/gstvaapidisplaycache.c: 27043 * gst-libs/gst/vaapi/gstvaapidisplaycache.h: 27044 display: implement a VA display cache. 27045 270462012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27047 27048 * gst/vaapi/gstvaapipluginutil.c: 27049 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults. 27050 This ensures the display name provided to gst_vaapi_display_*_new() 27051 maps to the system defaults, instead of forcing "" that could be different 27052 from the current DISPLAY name. 27053 270542011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27055 27056 * gst/vaapi/gstvaapiupload.c: 27057 vaapiupload: only set caps on newly created buffers. 27058 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27059 270602012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27061 27062 * gst/vaapi/gstvaapisink.c: 27063 vaapisink: ensure VA display in GstBaseSink::start() hook. 27064 This ensures a VA display is ready by the time upstream elements request 27065 for it. 27066 270672011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27068 27069 * gst/vaapi/gstvaapisink.c: 27070 vaapisink: don't leak GL texture. 27071 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27072 270732012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27074 27075 * gst/vaapi/gstvaapisink.c: 27076 vaapisink: fix calculation of render region. 27077 270782012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27079 27080 * gst/vaapi/gstvaapisink.c: 27081 vaapisink: automatically fit video to window. 27082 270832012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27084 27085 * gst/vaapi/gstvaapisink.c: 27086 vaapisink: implement GstXOverlay::set_render_rectangle(). 27087 270882012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27089 27090 * gst-libs/gst/vaapi/gstvaapiwindow.c: 27091 window: always check geometry when the window is mapped. 27092 270932012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com> 27094 27095 * gst-libs/gst/vaapi/gstvaapiutils.c: 27096 Add missing profiles from VA-API 0.32.0. 27097 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27098 270992012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27100 27101 * .gitignore: 27102 .gitignore: add test-subpicture. 27103 271042012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27105 27106 * configure.ac: 27107 Bump version for development. 27108 271092012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27110 27111 * NEWS: 27112 * configure.ac: 27113 0.3.2. 27114 271152012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27116 27117 * tests/Makefile.am: 27118 tests: fix make dist (ship with test-subpicture-data.h). 27119 271202012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27121 27122 * NEWS: 27123 NEWS: updates. 27124 271252012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27126 27127 * gst-libs/gst/vaapi/gstvaapidecoder.c: 27128 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 27129 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 27130 decoder: fix possible leak of VA surfaces. 27131 Under some circumstances, we could have leaked a surface, thus not 27132 releasing it to the pool of available surfaces in the VA context. 27133 The strategy is now to use a proxy earlier and automatically ref/unref 27134 whenever necessary. In particular, during the lifetime needed for FFmpeg. 27135 271362012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27137 27138 * docs/reference/libs/libs-sections.txt: 27139 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 27140 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 27141 surfaceproxy: add helper to retrieve the VA surface ID. 27142 271432012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27144 27145 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 27146 surfaceproxy: simplify destruction. 27147 Also make sure to always make sure to release the surface back to the 27148 pool of surfaces in the associated VA context, if any. 27149 271502012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27151 27152 * gst/vaapi/gstvaapidecode.c: 27153 vaapidecode: fix deinitialization order. 27154 271552012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27156 27157 * gst-libs/gst/vaapi/gstvaapicontext.c: 27158 context: avoid self reference loops with surfaces. 27159 271602012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27161 27162 * debian.upstream/control.in: 27163 debian: update control.in description for new plugins. 27164 271652012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27166 27167 * gst/vaapi/gstvaapiupload.c: 27168 vaapiupload: use new gst_vaapi_append_surface_caps() helper. 27169 This also fixes extra structures, beyond the one at index 0, to hold 27170 the right additional values. 27171 271722012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27173 27174 * gst/vaapi/gstvaapiupload.c: 27175 vaapiupload: fix sink (YUV) caps to not report type and opengl fields. 27176 271772012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27178 27179 * README: 27180 * docs/reference/plugins/plugins-docs.xml.in: 27181 * docs/reference/plugins/plugins-sections.txt: 27182 * docs/reference/plugins/plugins.types: 27183 * gst/vaapi/Makefile.am: 27184 * gst/vaapi/gstvaapi.c: 27185 * gst/vaapi/gstvaapidownload.c: 27186 * gst/vaapi/gstvaapidownload.h: 27187 vaapidownload: add new plugin to download pixels from VA surfaces. 27188 271892012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27190 27191 * gst/vaapi/gstvaapipluginutil.c: 27192 * gst/vaapi/gstvaapipluginutil.h: 27193 vaapipluingutils: add helper to append surface caps to YUV caps. 27194 271952012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27196 27197 * docs/reference/libs/libs-sections.txt: 27198 * gst-libs/gst/vaapi/gstvaapiimage.c: 27199 * gst-libs/gst/vaapi/gstvaapiimage.h: 27200 image: add helpers to extract pixels to user buffers. 27201 272022012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27203 27204 * gst-libs/gst/vaapi/gstvaapiimage.c: 27205 image: simplify initialization of raw images from video buffers. 27206 272072012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27208 27209 * gst-libs/gst/vaapi/gstvaapiimage.c: 27210 image: fix update from NV12 buffers. 27211 272122012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27213 27214 * gst/vaapi/gstvaapiupload.c: 27215 vaapiupload: fix memory leak in _init() function. 27216 272172012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27218 27219 * NEWS: 27220 * README: 27221 * debian.upstream/control.in: 27222 * docs/reference/plugins/plugins-docs.xml.in: 27223 * docs/reference/plugins/plugins-sections.txt: 27224 * docs/reference/plugins/plugins.types: 27225 * gst/vaapi/Makefile.am: 27226 * gst/vaapi/gstvaapi.c: 27227 * gst/vaapi/gstvaapiupload.c: 27228 * gst/vaapi/gstvaapiupload.h: 27229 Rename vaapiconvert element to vaapiupload. 27230 272312012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27232 27233 * configure.ac: 27234 Bump version for development. 27235 272362012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27237 27238 * NEWS: 27239 * configure.ac: 27240 0.3.1. 27241 272422011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27243 27244 * NEWS: 27245 NEWS: updates. 27246 272472011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27248 27249 * gst-libs/gst/vaapi/gstvaapisurface.c: 27250 * gst-libs/gst/vaapi/gstvaapisurface.h: 27251 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 27252 * gst/vaapi/gstvaapisink.c: 27253 surface: apply composition to the parent context, if requested. 27254 272552011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27256 27257 * docs/reference/libs/libs-sections.txt: 27258 * gst-libs/gst/vaapi/gstvaapicontext.c: 27259 * gst-libs/gst/vaapi/gstvaapicontext.h: 27260 context: make it possible to apply composition globally. 27261 272622011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27263 27264 * gst-libs/gst/vaapi/gstvaapisurface.c: 27265 surface: fix associate subpicture to not report deassociation errors. 27266 272672011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27268 27269 * gst-libs/gst/vaapi/gstvaapisurface.c: 27270 surface: fix typo in debug message. 27271 272722011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27273 27274 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 27275 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 27276 * gst-libs/gst/vaapi/gstvaapisurface.c: 27277 subpicture: add helper to create subpicture from GstVideoOverlayRectangle. 27278 272792011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27280 27281 * docs/reference/libs/libs-sections.txt: 27282 * gst-libs/gst/vaapi/Makefile.am: 27283 * gst-libs/gst/vaapi/gstvaapicontext.c: 27284 * gst-libs/gst/vaapi/gstvaapisurface.c: 27285 * gst-libs/gst/vaapi/gstvaapisurface.h: 27286 * gst-libs/gst/vaapi/gstvaapisurface_priv.h: 27287 surface: record parent context. 27288 272892011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27290 27291 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 27292 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 27293 * gst/vaapi/gstvaapidecode.c: 27294 * gst/vaapi/gstvaapisink.c: 27295 Fix warnings. 27296 272972011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27298 27299 * gst-libs/gst/vaapi/gstvaapisurface.c: 27300 * gst-libs/gst/vaapi/gstvaapisurface.h: 27301 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 27302 * gst/vaapi/gstvaapisink.c: 27303 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition(). 27304 273052011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27306 27307 * configure.ac: 27308 configure: check for GstVideoOverlayComposition. 27309 273102011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27311 27312 * NEWS: 27313 NEWS: updates. 27314 273152011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27316 27317 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 27318 converter: add support for GstVideoOverlayComposition planes. 27319 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27320 273212011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com> 27322 27323 * gst/vaapi/gstvaapisink.c: 27324 vaapisink: handle GstVideoOverlayComposition planes. 27325 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27326 273272011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27328 27329 * gst-libs/gst/vaapi/gstvaapisurface.c: 27330 surface: use unscaled overlay rectangle for blending. 27331 273322011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27333 27334 * gst-libs/gst/vaapi/gstvaapisurface.c: 27335 surface: fix VA image leak when an error occurred. 27336 273372011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27338 27339 * gst-libs/gst/vaapi/gstvaapisurface.c: 27340 * gst-libs/gst/vaapi/gstvaapisurface.h: 27341 surface: add helper to handle GstVideoOverlayComposition. 27342 This helper resets the subpictures to reflect the current composition 27343 layers provided with the buffers. 27344 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27345 273462011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27347 27348 * docs/reference/libs/libs-sections.txt: 27349 * gst-libs/gst/vaapi/Makefile.am: 27350 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 27351 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 27352 * gst/vaapi/gstvaapiconvert.c: 27353 image: add gst_vaapi_image_format_from_video() helper. 27354 273552011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27356 27357 * gst-libs/gst/vaapi/gstvaapiimage.c: 27358 * gst-libs/gst/vaapi/gstvaapiimage.h: 27359 image: allow updates from GstVaapiImageRaw. 27360 273612011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27362 27363 * gst-libs/gst/vaapi/gstvaapiimage.c: 27364 * gst-libs/gst/vaapi/gstvaapiimage.h: 27365 * gst/vaapi/gstvaapiconvert.c: 27366 * tests/test-subpicture.c: 27367 image: allow partial updates. 27368 273692011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27370 27371 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 27372 subpicture: fix doc for gst_vaapi_subpicture_set_image(). 27373 273742011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27375 27376 * gst-libs/gst/vaapi/gstvaapidisplay.c: 27377 display: fix has_image_format() to check against subpicture formats. 27378 273792011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27380 27381 * tests/test-subpicture.c: 27382 tests: fix subpicture test. 27383 273842011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com> 27385 27386 * tests/Makefile.am: 27387 * tests/test-subpicture-data.c: 27388 * tests/test-subpicture-data.h: 27389 * tests/test-subpicture.c: 27390 tests: add test for subpictures. 27391 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27392 273932011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27394 27395 * gst/vaapi/gstvaapiconvert.c: 27396 * gst/vaapi/gstvaapidecode.c: 27397 Add missing video context queries. 27398 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27399 274002011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27401 27402 * configure.ac: 27403 Bump version for development. 27404 274052011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27406 27407 * gst-libs/gst/video/Makefile.am: 27408 * gst-libs/gst/video/gstbasevideocodec.c: 27409 * gst-libs/gst/video/gstbasevideocodec.h: 27410 * gst-libs/gst/video/gstbasevideodecoder.c: 27411 * gst-libs/gst/video/gstbasevideodecoder.h: 27412 * gst-libs/gst/video/gstbasevideoutils.c: 27413 * gst-libs/gst/video/gstbasevideoutils.h: 27414 Drop unused copy of GstBaseVideoDecoder. 27415 274162011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27417 27418 * NEWS: 27419 * configure.ac: 27420 0.3.0. 27421 274222011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27423 27424 * README: 27425 README: update dependencies. 27426 274272011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27428 27429 * NEWS: 27430 NEWS: updates. 27431 274322011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27433 27434 * configure.ac: 27435 configure: check for GstBaseSink 'query' vfunc. 27436 274372011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27438 27439 * gst/vaapi/Makefile.am: 27440 vaapiplugin: include local build dir to CFLAGS for generated files. 27441 274422011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27443 27444 * autogen.sh: 27445 autogen: don't configure if NO_CONFIGURE variable is set. 27446 274472011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 27448 27449 * gst/vaapi/gstvaapidecode.c: 27450 * gst/vaapi/gstvaapidecode.h: 27451 vaapidecode: return sink caps template if decoder is in NULL state. 27452 Otherwise, the decoder would always create its own X display instead 27453 of probing it from the downstream element, which is not reliable. 27454 e.g. DISPLAY is not :0 or when running on Wayland. 27455 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27456 274572011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27458 27459 * gst/vaapi/gstvaapiconvert.c: 27460 * gst/vaapi/gstvaapidecode.c: 27461 vaapiplugin: properly set surface type to "vaapi" in caps. 27462 274632011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27464 27465 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 27466 decoder: drop unused headers. 27467 274682011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27469 27470 * gst/vaapi/gstvaapiconvert.c: 27471 * gst/vaapi/gstvaapidecode.c: 27472 vaapiplugin: properly set opengl support in caps. 27473 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27474 274752011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27476 27477 * gst/vaapi/gstvaapiconvert.c: 27478 * gst/vaapi/gstvaapidecode.c: 27479 vaapiplugin: allocate GLX buffers when supported. 27480 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27481 274822011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27483 27484 * gst-libs/gst/vaapi/Makefile.am: 27485 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 27486 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c: 27487 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h: 27488 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h: 27489 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c: 27490 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h: 27491 videobuffer: add GLX buffer support. 27492 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27493 274942011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27495 27496 * gst-libs/gst/vaapi/Makefile.am: 27497 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 27498 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 27499 Port to GstSurfaceBuffer interface. 27500 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27501 275022011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27503 27504 * gst/vaapi/gstvaapidecode.c: 27505 * gst/vaapi/gstvaapisink.c: 27506 Don't use downstream buffer allocation. 27507 With the new video/x-surface abstraction, we can't rely on having a VA 27508 specific sink downstream. Also, there was no particular reason to do that. 27509 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27510 275112011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27512 27513 * gst-libs/gst/vaapi/Makefile.am: 27514 * gst-libs/gst/vaapi/gstvaapicontext.c: 27515 * gst-libs/gst/vaapi/gstvaapisurface.h: 27516 * gst/vaapi/gstvaapiconvert.c: 27517 * gst/vaapi/gstvaapisink.c: 27518 * tests/Makefile.am: 27519 * tests/test-surfaces.c: 27520 Change caps to use new video/x-surface generic type. 27521 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27522 275232011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> 27524 27525 * configure.ac: 27526 * gst-libs/gst/vaapi/Makefile.am: 27527 * gst-libs/gst/vaapi/gstvaapiutils_gst.c: 27528 * gst/vaapi/Makefile.am: 27529 * gst/vaapi/gstvaapiconvert.c: 27530 * gst/vaapi/gstvaapidecode.c: 27531 * gst/vaapi/gstvaapipluginutil.c: 27532 * gst/vaapi/gstvaapipluginutil.h: 27533 * gst/vaapi/gstvaapisink.c: 27534 * gst/vaapi/gstvaapisink.h: 27535 Port to GstVideoContext interface. 27536 This new interface allows for upstream and downstream display sharing 27537 that works in both static and dynamic pipelines. 27538 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27539 275402011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27541 27542 * gst/vaapi/gstvaapisink.c: 27543 vaapisink: use GST_ERROR to print error messages. 27544 275452011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27546 27547 * gst/vaapi/Makefile.am: 27548 vaapiplugin: link against VA/GLX when enabled. 27549 275502011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27551 27552 * gst/vaapi/gstvaapiconvert.c: 27553 * gst/vaapi/gstvaapisink.c: 27554 Add Intel copyright information. 27555 275562011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27557 27558 * gst/vaapi/gstvaapisink.c: 27559 vaapisink: allow compatibility with gst-plugins-base < 0.10.31. 27560 275612011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27562 27563 * .gitignore: 27564 * configure.ac: 27565 * gst-libs/gst/Makefile.am: 27566 * gst-libs/gst/gstutils_version.h.in: 27567 Add new GStreamer version check utilities. 27568 275692011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com> 27570 27571 * gst/vaapi/gstvaapisink.c: 27572 vaapisink: replace the deprecated xoverlay API with the new one. 27573 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27574 275752011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27576 27577 * configure.ac: 27578 configure: allow for pre-releases. 27579 275802011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27581 27582 * gst-libs/gst/vaapi/gstvaapidisplay.c: 27583 display: destroy display on creation failure. 27584 This allows element to detect that the display creation has actually 27585 failed. 27586 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27587 275882011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27589 27590 * gst-libs/gst/vaapi/gstvaapidisplay.c: 27591 display: don't crash when config is empty. 27592 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27593 275942011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27595 27596 * README: 27597 * debian.upstream/copyright: 27598 doc: mention Collabora copyrights. 27599 276002011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27601 27602 * .gitignore: 27603 .gitignore: refine for generated docs. 27604 276052011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27606 27607 * configure.ac: 27608 * docs/reference/plugins/Makefile.am: 27609 * gst/Makefile.am: 27610 * gst/vaapi/Makefile.am: 27611 * gst/vaapi/gstvaapi.c: 27612 * gst/vaapi/gstvaapiconvert.c: 27613 * gst/vaapi/gstvaapiconvert.h: 27614 * gst/vaapi/gstvaapidecode.c: 27615 * gst/vaapi/gstvaapidecode.h: 27616 * gst/vaapi/gstvaapisink.c: 27617 * gst/vaapi/gstvaapisink.h: 27618 * gst/vaapiconvert/Makefile.am: 27619 * gst/vaapidecode/Makefile.am: 27620 Group all plugins into the same bundle 27621 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27622 276232011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27624 27625 * configure.ac: 27626 Bump version for development. 27627 276282011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27629 27630 * configure.ac: 27631 * debian.upstream/control.in: 27632 debian: build against upstream libva packages. 27633 276342011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27635 27636 * docs/reference/libs/Makefile.am: 27637 * docs/reference/plugins/Makefile.am: 27638 * tests/Makefile.am: 27639 Fix build on Ubuntu 11.10 (Oneric). 27640 276412011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27642 27643 * NEWS: 27644 0.2.7. 27645 276462011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27647 27648 * .gitignore: 27649 Adding ignore file 27650 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27651 276522011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com> 27653 27654 * gst/vaapiconvert/gstvaapiconvert.c: 27655 * gst/vaapidecode/gstvaapidecode.c: 27656 * gst/vaapisink/gstvaapisink.c: 27657 Update license in plugin definition 27658 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27659 276602011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27661 27662 * NEWS: 27663 * gst-libs/gst/vaapi/gstvaapidecoder.c: 27664 decoder: fix use of invalid data at the end-of-stream. 27665 276662011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27667 27668 * gst/vaapiconvert/gstvaapiconvert.c: 27669 vaapiconvert: fix some warnings. 27670 276712011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27672 27673 * configure.ac: 27674 * debian.upstream/changelog.in: 27675 * debian.upstream/control.in: 27676 * debian.upstream/copyright: 27677 * gst/vaapiconvert/gstvaapiconvert.c: 27678 * gst/vaapidecode/gstvaapidecode.c: 27679 * gst/vaapisink/gstvaapisink.c: 27680 Update with my current e-mail address. 27681 276822011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27683 27684 * NEWS: 27685 * README: 27686 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+. 27687 276882011-10-18 09:18:20 +0200 warly <warly@warly.org> 27689 27690 * tests/image.c: 27691 * tests/image.h: 27692 * tests/test-decode.c: 27693 * tests/test-decode.h: 27694 * tests/test-display.c: 27695 * tests/test-h264.c: 27696 * tests/test-h264.h: 27697 * tests/test-mpeg2.c: 27698 * tests/test-mpeg2.h: 27699 * tests/test-surfaces.c: 27700 * tests/test-textures.c: 27701 * tests/test-vc1.c: 27702 * tests/test-vc1.h: 27703 * tests/test-windows.c: 27704 switch tests licence to LGPL v2.1+ 27705 277062011-10-18 09:06:52 +0200 warly <warly@warly.org> 27707 27708 * COPYING: 27709 * README: 27710 * debian.upstream/copyright: 27711 * gst/vaapiconvert/gstvaapiconvert.c: 27712 * gst/vaapiconvert/gstvaapiconvert.h: 27713 * gst/vaapidecode/gstvaapidecode.c: 27714 * gst/vaapidecode/gstvaapidecode.h: 27715 * gst/vaapisink/gstvaapisink.c: 27716 * gst/vaapisink/gstvaapisink.h: 27717 move plugins to LGPL v2.1+ 27718 277192011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27720 27721 * gst/vaapidecode/gstvaapidecode.c: 27722 vaapidecode: fix sink caps to not expose size information. 27723 This fixes this particular issue: 27724 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not 27725 a real subset of its template caps 27726 277272011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27728 27729 * NEWS: 27730 * gst/vaapidecode/gstvaapidecode.c: 27731 vaapidecode: fix decoding of MPEG-2 PS files. 27732 277332011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27734 27735 * gst-libs/gst/vaapi/Makefile.am: 27736 Cosmetics (sort source files). 27737 277382011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27739 27740 * gst/vaapiconvert/gstvaapiconvert.c: 27741 * gst/vaapiconvert/gstvaapiconvert.h: 27742 vaapiconvert: fix direct-rendering caps detection. 27743 277442011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27745 27746 * gst-libs/gst/vaapi/gstvaapiimage.c: 27747 Fix gst_vaapi_image_new_with_image(). 27748 277492011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27750 27751 * gst/vaapiconvert/gstvaapiconvert.c: 27752 vaapiconvert: warn when surface failed to be updated with image. 27753 277542011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27755 27756 * gst/vaapiconvert/gstvaapiconvert.c: 27757 vaapiconvert: fix autodetection for vaDeriveImage() support. 27758 277592011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27760 27761 * gst/vaapiconvert/gstvaapiconvert.c: 27762 vaapiconvert: fix memory leak (VA surface image). 27763 277642011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27765 27766 * NEWS: 27767 * gst/vaapiconvert/gstvaapiconvert.c: 27768 vaapiconvert: fix direct-rendering mode. 27769 277702011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27771 27772 * docs/reference/libs/libs-sections.txt: 27773 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 27774 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 27775 Add gst_vaapi_video_buffer_new_from_buffer(). 27776 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer. 27777 Any image, surface or surface proxy will be inherited from the source buffer 27778 if it is a GstVaapiVideoBuffer. 27779 277802011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27781 27782 * gst/vaapiconvert/gstvaapiconvert.c: 27783 vaapiconvert: protect access to direct_rendering. 27784 277852011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27786 27787 * gst/vaapiconvert/gstvaapiconvert.c: 27788 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display. 27789 277902011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27791 27792 * NEWS: 27793 * README: 27794 * debian.upstream/copyright: 27795 * gst-libs/gst/vaapi/gstvaapidecoder.c: 27796 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 27797 * gst-libs/gst/vaapi/gstvaapisurface.h: 27798 * gst/vaapidecode/gstvaapidecode.c: 27799 * gst/vaapidecode/gstvaapidecode.h: 27800 Add Intel copyright information. 27801 278022011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27803 27804 * NEWS: 27805 Updates. 27806 278072011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27808 27809 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 27810 Fix build with newer FFmpeg versions. 27811 278122011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27813 27814 * gst/vaapidecode/gstvaapidecode.c: 27815 * gst/vaapidecode/gstvaapidecode.h: 27816 Fix decoding of MPEG-2 TS files. 27817 278182011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27819 27820 * gst-libs/gst/vaapi/gstvaapidecoder.c: 27821 Report caps update only once per video resolution change. 27822 278232011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27824 27825 * gst-libs/gst/vaapi/gstvaapisurface.h: 27826 Add canonical form (type name) of VA surface caps. 27827 278282011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27829 27830 * configure.ac: 27831 Bump version for development. 27832 278332011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27834 27835 * configure.ac: 27836 Use pretty build output with automake >= 1.11. 27837 278382011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com> 27839 27840 * gst/vaapiconvert/Makefile.am: 27841 * gst/vaapidecode/Makefile.am: 27842 * gst/vaapisink/Makefile.am: 27843 * tests/Makefile.am: 27844 Fix build with libva headers not in a standard include dir. 27845 278462011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com> 27847 27848 * configure.ac: 27849 0.2.6. 27850 278512011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com> 27852 27853 * gst-libs/gst/vaapi/gstvaapi_priv.h: 27854 * gst-libs/gst/vaapi/gstvaapicompat.h: 27855 * gst-libs/gst/vaapi/gstvaapicontext.c: 27856 * gst-libs/gst/vaapi/gstvaapicontext.h: 27857 * gst-libs/gst/vaapi/gstvaapidebug.h: 27858 * gst-libs/gst/vaapi/gstvaapidecoder.c: 27859 * gst-libs/gst/vaapi/gstvaapidecoder.h: 27860 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 27861 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 27862 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 27863 * gst-libs/gst/vaapi/gstvaapidisplay.c: 27864 * gst-libs/gst/vaapi/gstvaapidisplay.h: 27865 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 27866 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 27867 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 27868 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 27869 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 27870 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 27871 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 27872 * gst-libs/gst/vaapi/gstvaapiimage.c: 27873 * gst-libs/gst/vaapi/gstvaapiimage.h: 27874 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 27875 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 27876 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 27877 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 27878 * gst-libs/gst/vaapi/gstvaapiobject.c: 27879 * gst-libs/gst/vaapi/gstvaapiobject.h: 27880 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 27881 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 27882 * gst-libs/gst/vaapi/gstvaapiparamspecs.h: 27883 * gst-libs/gst/vaapi/gstvaapiprofile.c: 27884 * gst-libs/gst/vaapi/gstvaapiprofile.h: 27885 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 27886 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 27887 * gst-libs/gst/vaapi/gstvaapisurface.c: 27888 * gst-libs/gst/vaapi/gstvaapisurface.h: 27889 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 27890 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 27891 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 27892 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 27893 * gst-libs/gst/vaapi/gstvaapitexture.c: 27894 * gst-libs/gst/vaapi/gstvaapitexture.h: 27895 * gst-libs/gst/vaapi/gstvaapitypes.h: 27896 * gst-libs/gst/vaapi/gstvaapiutils.c: 27897 * gst-libs/gst/vaapi/gstvaapiutils.h: 27898 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 27899 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 27900 * gst-libs/gst/vaapi/gstvaapiutils_gst.c: 27901 * gst-libs/gst/vaapi/gstvaapiutils_gst.h: 27902 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 27903 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 27904 * gst-libs/gst/vaapi/gstvaapivalue.c: 27905 * gst-libs/gst/vaapi/gstvaapivalue.h: 27906 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 27907 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 27908 * gst-libs/gst/vaapi/gstvaapivideopool.c: 27909 * gst-libs/gst/vaapi/gstvaapivideopool.h: 27910 * gst-libs/gst/vaapi/gstvaapivideosink.c: 27911 * gst-libs/gst/vaapi/gstvaapivideosink.h: 27912 * gst-libs/gst/vaapi/gstvaapiwindow.c: 27913 * gst-libs/gst/vaapi/gstvaapiwindow.h: 27914 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 27915 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 27916 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 27917 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 27918 * gst/vaapiconvert/gstvaapiconvert.c: 27919 * gst/vaapiconvert/gstvaapiconvert.h: 27920 * gst/vaapidecode/gstvaapidecode.c: 27921 * gst/vaapidecode/gstvaapidecode.h: 27922 * gst/vaapisink/gstvaapisink.c: 27923 * gst/vaapisink/gstvaapisink.h: 27924 * tests/image.c: 27925 * tests/image.h: 27926 * tests/test-decode.c: 27927 * tests/test-decode.h: 27928 * tests/test-display.c: 27929 * tests/test-h264.c: 27930 * tests/test-h264.h: 27931 * tests/test-mpeg2.c: 27932 * tests/test-mpeg2.h: 27933 * tests/test-surfaces.c: 27934 * tests/test-textures.c: 27935 * tests/test-vc1.c: 27936 * tests/test-vc1.h: 27937 * tests/test-windows.c: 27938 Update copyright notice. 27939 279402011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com> 27941 27942 * NEWS: 27943 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 27944 * gst-libs/gst/vaapi/gstvaapisurface.c: 27945 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 27946 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 27947 * gst-libs/gst/vaapi/gstvaapitexture.c: 27948 * gst-libs/gst/vaapi/gstvaapiutils.c: 27949 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 27950 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 27951 * gst-libs/gst/vaapi/gstvaapivalue.c: 27952 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 27953 * gst-libs/gst/vaapi/gstvaapivideopool.c: 27954 * gst-libs/gst/vaapi/gstvaapivideosink.c: 27955 * gst-libs/gst/vaapi/gstvaapiwindow.c: 27956 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 27957 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 27958 Fix licensing terms. 27959 279602010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 27961 27962 * NEWS: 27963 0.2.5. 27964 279652010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 27966 27967 * debian.upstream/copyright: 27968 Fix license terms... 27969 279702010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 27971 27972 * gst/vaapisink/gstvaapisink.c: 27973 Render pretty background only in use-reflection=true mode. 27974 279752010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 27976 27977 * NEWS: 27978 Updates. 27979 279802010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 27981 27982 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 27983 Drop the GLX 1.3 requirement. 27984 279852010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 27986 27987 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 27988 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 27989 Call the GLX/Pixmap related functions through the vtable. 27990 279912010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 27992 27993 * NEWS: 27994 * configure.ac: 27995 * gst-libs/gst/vaapi/Makefile.am: 27996 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 27997 Drop dependency on libavformat. 27998 279992010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28000 28001 * gst-libs/gst/video/gstbasevideodecoder.c: 28002 * gst-libs/gst/video/gstbasevideodecoder.h: 28003 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any. 28004 280052010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28006 28007 * gst-libs/gst/video/gstbasevideodecoder.c: 28008 * gst-libs/gst/video/gstbasevideoutils.c: 28009 * gst-libs/gst/video/gstbasevideoutils.h: 28010 Drop superfluous functions. 28011 280122010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28013 28014 * gst-libs/gst/video/gstbasevideodecoder.c: 28015 Really drop any dependency on libgstvideo. i.e. inline the helpers. 28016 280172010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28018 28019 * gst-libs/gst/video/gstbasevideodecoder.c: 28020 Further drop dependency on libgstvideo. 28021 280222010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28023 28024 * gst-libs/gst/video/Makefile.am: 28025 * gst-libs/gst/video/gstbasevideocodec.c: 28026 * gst-libs/gst/video/gstbasevideocodec.h: 28027 * gst-libs/gst/video/gstbasevideodecoder.c: 28028 * gst-libs/gst/video/gstbasevideodecoder.h: 28029 * gst-libs/gst/video/gstbasevideoutils.c: 28030 * gst-libs/gst/video/gstbasevideoutils.h: 28031 Add GstBaseVideoDecoder from gst-plugins-bad git. 28032 280332010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28034 28035 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 28036 Fix GLX version check. 28037 280382010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28039 28040 * NEWS: 28041 * configure.ac: 28042 Bump version for development. 28043 280442010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28045 28046 * NEWS: 28047 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28048 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer. 28049 280502010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28051 28052 * NEWS: 28053 Update changelog. 28054 280552010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28056 28057 * gst-libs/gst/vaapi/gstvaapicompat.h: 28058 Fix build with older VA-API 0.29-sds. 28059 280602010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28061 28062 * gst/vaapisink/gstvaapisink.c: 28063 * gst/vaapisink/gstvaapisink.h: 28064 Fix upscaling in foreign window (Totem). 28065 280662010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28067 28068 * gst/vaapisink/gstvaapisink.c: 28069 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields. 28070 280712010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28072 28073 * NEWS: 28074 * gst/vaapisink/gstvaapisink.c: 28075 Fix video rendering rect within an embedder window (Totem). 28076 280772010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28078 28079 * NEWS: 28080 * gst/vaapisink/gstvaapisink.c: 28081 Disable GLX rendering when vaapisink uses a foreign X window. 28082 280832010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28084 28085 * gst/vaapisink/gstvaapisink.c: 28086 Simplify GLX rendering code. 28087 280882010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28089 28090 * configure.ac: 28091 Bump version for development. 28092 280932010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28094 28095 * NEWS: 28096 0.2.3. 28097 280982010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28099 28100 * gst/vaapidecode/gstvaapidecode.c: 28101 Wait for at most one second for a VA surface to become available. 28102 281032010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28104 28105 * README: 28106 * configure.ac: 28107 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge(). 28108 281092010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28110 28111 * NEWS: 28112 * README: 28113 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28114 Fix decoder caps to report codec aliases. 28115 281162010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28117 28118 * NEWS: 28119 * gst/vaapidecode/gstvaapidecode.c: 28120 * gst/vaapidecode/gstvaapidecode.h: 28121 Fix VC-1 decoding through the playbin2 pipeline. 28122 281232010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28124 28125 * docs/reference/libs/libs-sections.txt: 28126 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28127 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28128 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28129 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28130 Regularly update and expose decoder caps. 28131 281322010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28133 28134 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28135 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28136 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28137 Add mechanism to reinsert buffer leftovers into the queue. 28138 281392010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28140 28141 * NEWS: 28142 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28143 Fix memory leak of encoded buffers. 28144 281452010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28146 28147 * docs/reference/libs/libs-sections.txt: 28148 * gst-libs/gst/vaapi/gstvaapicontext.c: 28149 * gst-libs/gst/vaapi/gstvaapicontext.h: 28150 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28151 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28152 Check for out-of-free-surfaces condition. 28153 281542010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28155 28156 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28157 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1). 28158 281592010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28160 28161 * gst/vaapisink/gstvaapisink.c: 28162 Improve debug info for gst_vaapisink_ensure_render_rect(). 28163 281642010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28165 28166 * configure.ac: 28167 Bump version for development. 28168 281692010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28170 28171 * NEWS: 28172 0.2.2. 28173 281742010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28175 28176 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28177 Improve previous fix. 28178 281792010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28180 28181 * NEWS: 28182 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28183 Fix a crash in the FFmpeg decoder on close. 28184 281852010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28186 28187 * README: 28188 Sort platforms by name. 28189 281902010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28191 28192 * NEWS: 28193 * configure.ac: 28194 Bump version for development. 28195 281962010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28197 28198 * gst/vaapisink/gstvaapisink.c: 28199 Add debug info for _show_frame(). 28200 282012010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28202 28203 * Makefile.am: 28204 Nuke older build dir. 28205 282062010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28207 28208 * debian.upstream/control.in: 28209 Fix packaging deps. 28210 282112010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28212 28213 * NEWS: 28214 Cosmetics. 28215 282162010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28217 28218 * NEWS: 28219 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 28220 Fix OpenGL texture internal format (Clutter). 28221 282222010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28223 28224 * NEWS: 28225 Respin release. 28226 282272010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28228 28229 * gst/vaapisink/gstvaapisink.c: 28230 Debug video & display PARs. 28231 282322010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28233 28234 * gst/vaapisink/gstvaapisink.c: 28235 Use XGetGeometry() to retrieve the window size. 28236 282372010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28238 28239 * gst/vaapisink/gstvaapisink.c: 28240 Move code around. 28241 282422010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28243 28244 * gst/vaapisink/gstvaapisink.c: 28245 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down. 28246 282472010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28248 28249 * README: 28250 Drop obsolete comment. 28251 282522010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28253 28254 * NEWS: 28255 0.2.1. 28256 282572010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28258 28259 * gst/vaapidecode/gstvaapidecode.c: 28260 Fix GstVaapiDisplay refcounting in vaapidecode. 28261 282622010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28263 28264 * gst-libs/gst/vaapi/gstvaapiutils_gst.c: 28265 Fix comment. 28266 282672010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28268 28269 * gst/vaapisink/gstvaapisink.c: 28270 * gst/vaapisink/gstvaapisink.h: 28271 Fix render rect when the foreign window size changes. 28272 282732010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28274 28275 * NEWS: 28276 * configure.ac: 28277 * gst/vaapisink/Makefile.am: 28278 * gst/vaapisink/gstvaapisink.c: 28279 Add GstXOverlay interface to vaapisink (e.g. for Totem). 28280 282812010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28282 28283 * README: 28284 Update deps to match configure.ac versions. 28285 282862010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28287 28288 * gst/vaapiconvert/gstvaapiconvert.c: 28289 * gst/vaapidecode/gstvaapidecode.c: 28290 * gst/vaapisink/gstvaapisink.c: 28291 Cosmetics. 28292 282932010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28294 28295 * NEWS: 28296 * gst/vaapidecode/Makefile.am: 28297 * gst/vaapidecode/gstvaapidecode.c: 28298 * gst/vaapidecode/gstvaapidecode.h: 28299 Fix vaapidecode to expose the HW supported caps only. 28300 283012010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28302 28303 * gst/vaapidecode/gstvaapidecode.c: 28304 Initialize decoder earlier. 28305 283062010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28307 28308 * NEWS: 28309 * README: 28310 * gst/vaapidecode/gstvaapidecode.c: 28311 Fix integration within the playbin2 pipeline. 28312 283132010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28314 28315 * docs/reference/libs/Makefile.am: 28316 Exclude gstvaapiutils_gst.h from docs for now. 28317 283182010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28319 28320 * gst/vaapiconvert/gstvaapiconvert.c: 28321 * gst/vaapidecode/gstvaapidecode.c: 28322 * gst/vaapisink/gstvaapisink.c: 28323 Raise VA-API plugins ranks. 28324 283252010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28326 28327 * gst-libs/gst/vaapi/Makefile.am: 28328 * gst-libs/gst/vaapi/gstvaapiutils_gst.c: 28329 * gst-libs/gst/vaapi/gstvaapiutils_gst.h: 28330 Add gst_vaapi_display_lookup_downstream() helper. 28331 283322010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28333 28334 * gst/vaapidecode/gstvaapidecode.c: 28335 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface. 28336 283372010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28338 28339 * docs/reference/libs/libs-sections.txt: 28340 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 28341 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 28342 * gst/vaapisink/gstvaapisink.c: 28343 Expose VA display through GstVaapiVideoBuffer. 28344 283452010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28346 28347 * gst/vaapidecode/gstvaapidecode.c: 28348 Simplify gst_vaapidecode_set_caps() and fix memory leak. 28349 283502010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28351 28352 * docs/reference/libs/libs-sections.txt: 28353 * gst-libs/gst/vaapi/gstvaapivideopool.c: 28354 * gst-libs/gst/vaapi/gstvaapivideopool.h: 28355 Expose video pool display. 28356 283572010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28358 28359 * gst-libs/gst/vaapi/gstvaapivideosink.c: 28360 Stop iteration if there is no more element to examine. 28361 283622010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28363 28364 * gst/vaapiconvert/gstvaapiconvert.c: 28365 * gst/vaapidecode/gstvaapidecode.c: 28366 * gst/vaapisink/gstvaapisink.c: 28367 Improve plugin details. 28368 283692010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28370 28371 * gst-libs/gst/vaapi/gstvaapisurface.h: 28372 * gst/vaapiconvert/gstvaapiconvert.c: 28373 * gst/vaapidecode/gstvaapidecode.c: 28374 * gst/vaapisink/gstvaapisink.c: 28375 Factor out VA surface caps. 28376 283772010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28378 28379 * gst/vaapidecode/gstvaapidecode.c: 28380 Add gst_vaapidecode_ensure_display() helper for set-caps. 28381 283822010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28383 28384 * configure.ac: 28385 Bump version for development. 28386 283872010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28388 28389 * NEWS: 28390 Really make it 0.2.0. 28391 283922010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28393 28394 * README: 28395 More docs. 28396 283972010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28398 28399 * docs/reference/libs/Makefile.am: 28400 Don't exclude GstVaapiParamSpecs. 28401 284022010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28403 28404 * docs/reference/libs/Makefile.am: 28405 * docs/reference/libs/libs-sections.txt: 28406 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28407 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 28408 Fix docs. 28409 284102010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28411 28412 * gst/vaapiconvert/gstvaapiconvert.c: 28413 * gst/vaapidecode/gstvaapidecode.c: 28414 * gst/vaapisink/gstvaapisink.c: 28415 Lower plugins rank for now since playbin2 auto-plugging is not working properly. User applications will have to create their own pipeline or with some hacks around playbin2. 28416 284172010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28418 28419 * gst-libs/gst/vaapi/Makefile.am: 28420 Really link all helper libraries with libtool -no-undefined. 28421 284222010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28423 28424 * gst-libs/gst/vaapi/Makefile.am: 28425 Link helper libraries with libtool -no-undefined. 28426 284272010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28428 28429 * configure.ac: 28430 * debian.upstream/gstreamer-vaapi.install.in: 28431 * gst/vaapiconvert/Makefile.am: 28432 * gst/vaapidecode/Makefile.am: 28433 * gst/vaapisink/Makefile.am: 28434 Don't build plugins with SONAME. Make them plain *.so. 28435 284362010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28437 28438 * README: 28439 Improve documentation for release. 28440 284412010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28442 28443 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28444 Fix build with older VA-API 0.29. 28445 284462010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28447 28448 * NEWS: 28449 0.2.0. 28450 284512010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28452 28453 * tests/Makefile.am: 28454 Fix make dist. 28455 284562010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28457 28458 * docs/reference/libs/Makefile.am: 28459 * docs/reference/libs/libs-docs.xml.in: 28460 * docs/reference/libs/libs-sections.txt: 28461 * docs/reference/libs/libs.core.types: 28462 * docs/reference/plugins/Makefile.am: 28463 * docs/reference/plugins/plugins-docs.xml.in: 28464 * docs/reference/plugins/plugins-sections.txt: 28465 * docs/reference/plugins/plugins.types: 28466 Add missing docs. 28467 284682010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28469 28470 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28471 Fix doc. 28472 284732010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28474 28475 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28476 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 28477 * gst/vaapidecode/gstvaapidecode.c: 28478 * tests/test-decode.c: 28479 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new(). 28480 284812010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28482 28483 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28484 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28485 Extract framerate information from caps. 28486 284872010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28488 28489 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28490 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28491 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28492 Move caps initialization to parent class. 28493 284942010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28495 28496 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28497 Simplify. 28498 284992010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28500 28501 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28502 Fix doc. 28503 285042010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28505 28506 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28507 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28508 More simplifications. 28509 285102010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28511 28512 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28513 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28514 * tests/test-decode.c: 28515 Simplify GstVaapiDecoder API. 28516 285172010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28518 28519 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28520 Drop obsolete defs. 28521 285222010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28523 28524 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28525 Drop obsolete decls. 28526 285272010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28528 28529 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28530 * gst/vaapidecode/gstvaapidecode.c: 28531 Add more aliases for MPEG-4 decoding. 28532 285332010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28534 28535 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28536 Use avctx->coded_{width,height} info to create the VA context. 28537 285382010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28539 28540 * tests/test-decode.c: 28541 * tests/test-decode.h: 28542 Use gst_vaapi_decoder_ffmpeg_new_from_caps(). 28543 285442010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28545 28546 * tests/test-decode.c: 28547 * tests/test-decode.h: 28548 * tests/test-h264.c: 28549 * tests/test-h264.h: 28550 * tests/test-mpeg2.c: 28551 * tests/test-mpeg2.h: 28552 * tests/test-vc1.c: 28553 * tests/test-vc1.h: 28554 Simplify tests info. 28555 285562010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28557 28558 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28559 Try to improve heuristics to use an AVCodecContextParser. 28560 285612010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28562 28563 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28564 Fix VC-1 decoding, it does not require any specific parser. 28565 285662010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28567 28568 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28569 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one). 28570 285712010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28572 28573 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28574 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28575 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding. 28576 285772010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28578 28579 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28580 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28581 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 28582 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28583 * gst/vaapidecode/gstvaapidecode.c: 28584 * gst/vaapidecode/gstvaapidecode.h: 28585 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper. 28586 285872010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28588 28589 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28590 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28591 * gst-libs/gst/vaapi/gstvaapiprofile.h: 28592 Improve WMV3 detection yet further. 28593 285942010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28595 28596 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28597 Fix detection of plain old WMV3 contents. 28598 285992010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28600 28601 * tests/test-vc1.c: 28602 Add End-of-Sequence start code. 28603 286042010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28605 28606 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28607 * gst/vaapidecode/gstvaapidecode.c: 28608 Fix VC-1 detection. 28609 286102010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28611 28612 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28613 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function. 28614 286152010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28616 28617 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28618 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28619 Drop obsolete (and wrong) code. 28620 286212010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28622 28623 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28624 Cosmetics (spelling). 28625 286262010-05-03 08:32:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28627 28628 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28629 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28630 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28631 Try to fix timestamps (step 1). Looks OK on H55. 28632 286332010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28634 28635 * debian.upstream/Makefile.am: 28636 Ship with COPYING.LIB. 28637 286382010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28639 28640 * COPYING.LIB: 28641 * NEWS: 28642 * README: 28643 * gst-libs/gst/vaapi/gstvaapi_priv.h: 28644 * gst-libs/gst/vaapi/gstvaapicompat.h: 28645 * gst-libs/gst/vaapi/gstvaapicontext.c: 28646 * gst-libs/gst/vaapi/gstvaapicontext.h: 28647 * gst-libs/gst/vaapi/gstvaapidebug.h: 28648 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28649 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28650 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28651 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 28652 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28653 * gst-libs/gst/vaapi/gstvaapidisplay.c: 28654 * gst-libs/gst/vaapi/gstvaapidisplay.h: 28655 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 28656 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 28657 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 28658 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 28659 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 28660 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 28661 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 28662 * gst-libs/gst/vaapi/gstvaapiimage.c: 28663 * gst-libs/gst/vaapi/gstvaapiimage.h: 28664 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 28665 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 28666 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 28667 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 28668 * gst-libs/gst/vaapi/gstvaapiobject.c: 28669 * gst-libs/gst/vaapi/gstvaapiobject.h: 28670 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 28671 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 28672 * gst-libs/gst/vaapi/gstvaapiparamspecs.h: 28673 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28674 * gst-libs/gst/vaapi/gstvaapiprofile.h: 28675 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 28676 * gst-libs/gst/vaapi/gstvaapisurface.h: 28677 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 28678 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 28679 * gst-libs/gst/vaapi/gstvaapitexture.h: 28680 * gst-libs/gst/vaapi/gstvaapitypes.h: 28681 * gst-libs/gst/vaapi/gstvaapiutils.h: 28682 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 28683 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 28684 * gst-libs/gst/vaapi/gstvaapivalue.h: 28685 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 28686 * gst-libs/gst/vaapi/gstvaapivideopool.h: 28687 * gst-libs/gst/vaapi/gstvaapivideosink.h: 28688 * gst-libs/gst/vaapi/gstvaapiwindow.h: 28689 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 28690 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 28691 Relicense gst-libs/ code to LGPL v2.1+. 28692 286932010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28694 28695 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28696 Drop extraneous comma. 28697 286982010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28699 28700 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28701 Drop variant=itu field to help codec detection. 28702 287032010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28704 28705 * gst/vaapidecode/gstvaapidecode.c: 28706 Decode as many surfaces as possible in gst_vaapidecode_step(). 28707 287082010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28709 28710 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28711 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28712 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28713 * gst/vaapidecode/gstvaapidecode.c: 28714 * gst/vaapidecode/gstvaapidecode.h: 28715 * tests/test-decode.c: 28716 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps). 28717 287182010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28719 28720 * configure.ac: 28721 0.2.0. 28722 287232010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28724 28725 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28726 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change. 28727 287282010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28729 28730 * gst-libs/gst/vaapi/gstvaapidisplay.c: 28731 * gst-libs/gst/vaapi/gstvaapidisplay.h: 28732 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too. 28733 287342010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28735 28736 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28737 * gst-libs/gst/vaapi/gstvaapiprofile.h: 28738 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE. 28739 287402010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28741 28742 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28743 Document H.264 / AVC1 format case better. 28744 287452010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28746 28747 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28748 Fix H.264 decoding with AVC1 format bitstreams. 28749 287502010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28751 28752 * gst/vaapidecode/gstvaapidecode.c: 28753 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up. 28754 287552010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28756 28757 * gst/vaapisink/gstvaapisink.c: 28758 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad. 28759 287602010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28761 28762 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 28763 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 28764 Export gst_vaapi_video_buffer_new(). 28765 287662010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28767 28768 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28769 Fix gst_vaapi_profile_get_caps() to include the "profile" field. 28770 287712010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28772 28773 * configure.ac: 28774 Fix comment. 28775 287762010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28777 28778 * NEWS: 28779 * configure.ac: 28780 * gst/Makefile.am: 28781 * gst/vaapidecode/Makefile.am: 28782 * gst/vaapidecode/gstvaapidecode.c: 28783 * gst/vaapidecode/gstvaapidecode.h: 28784 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element. 28785 287862010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28787 28788 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28789 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28790 Add gst_vaapi_decoder_pause(). 28791 287922010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28793 28794 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28795 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28796 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28797 Use a GstTask with start/stop semantics for the decoder thread. 28798 287992010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28800 28801 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 28802 Drop extraneous var. 28803 288042010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28805 28806 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 28807 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 28808 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer. 28809 288102010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28811 28812 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28813 Fix gst_vaapi_decoder_get_surface() status. 28814 288152010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28816 28817 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28818 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28819 Try to set correct timestamps to the decoded surface proxy. 28820 288212010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28822 28823 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 28824 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 28825 * tests/test-decode.c: 28826 Add timestamps to GstVaapiSurfaceProxy. 28827 288282010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28829 28830 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28831 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer. 28832 288332010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28834 28835 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28836 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()... 28837 288382010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28839 28840 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28841 Prefer profile from codec-data if any was found there. 28842 288432010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28844 28845 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28846 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field. 28847 288482010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28849 28850 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28851 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error. 28852 288532010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28854 28855 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28856 Fix VC-1 codec initialization, it really needs an extradata buffer. 28857 288582010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28859 28860 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28861 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28862 Split decoder creation with actual resources allocation and codec setup (probe). This fixes a memory leak (avctx, pctx) on destroy and most interestingly makes it possible to detect unsupported codecs. 28863 288642010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28865 28866 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28867 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor. 28868 288692010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28870 28871 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28872 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28873 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 28874 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28875 * tests/test-decode.c: 28876 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams. 28877 288782010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28879 28880 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28881 Cosmetics (weird indentation). 28882 288832010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28884 28885 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28886 Cosmetics (extraneous variable, debug message). 28887 288882010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28889 28890 * configure.ac: 28891 Fix check for VA-API enabled FFmpeg. 28892 288932010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28894 28895 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28896 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28897 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28898 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28899 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext. 28900 289012010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28902 28903 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28904 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28905 Add more error codes. Fix documentation. 28906 289072010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28908 28909 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28910 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data". 28911 289122010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28913 28914 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28915 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28916 * tests/test-decode.c: 28917 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers. 28918 289192010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28920 28921 * tests/test-vc1.c: 28922 Drop useless End-of-Sequence marker. 28923 289242010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28925 28926 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28927 Flush stream only if avcodec_decode_video() read something. Otherwise, we might still have to seek into the stream. i.e. keep the data longer. 28928 289292010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28930 28931 * gst-libs/gst/vaapi/gstvaapidisplay.c: 28932 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 28933 Use a recursive mutex so that a single thread can lock several times. This fixes decoding of MPEG-2 and H.264 because those created a GstVaapiContext later through avcodec_decode_video() that was a protected call. 28934 289352010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28936 28937 * tests/test-h264.c: 28938 * tests/test-vc1.c: 28939 Regenerate correct clips. 28940 289412010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28942 28943 * tests/Makefile.am: 28944 * tests/test-decode.c: 28945 * tests/test-h264.c: 28946 * tests/test-h264.h: 28947 * tests/test-mpeg2.c: 28948 * tests/test-mpeg2.h: 28949 * tests/test-vc1.c: 28950 * tests/test-vc1.h: 28951 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec. 28952 XXX: only VC-1 decoding works at this time because of awful 28953 bugs left in GstVaapiDecoderFfmpeg et al. 28954 289552010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28956 28957 * configure.ac: 28958 * gst-libs/gst/vaapi/Makefile.am: 28959 * gst-libs/gst/vaapi/gstvaapidecoder.c: 28960 * gst-libs/gst/vaapi/gstvaapidecoder.h: 28961 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c: 28962 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h: 28963 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h: 28964 Add initial (multithreaded) decoder based on FFmpeg. 28965 There are tons of bugs left: 28966 - Decoder API not nice enough with error conditions 28967 - FFmpeg parser is sometimes broken 28968 - Packets queue can be lost 28969 289702010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28971 28972 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c: 28973 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h: 28974 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction. 28975 289762010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28977 28978 * gst-libs/gst/vaapi/gstvaapicontext.c: 28979 * gst-libs/gst/vaapi/gstvaapicontext.h: 28980 Add VA context abstraction. 28981 289822010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28983 28984 * gst-libs/gst/vaapi/gstvaapiprofile.h: 28985 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work. 28986 289872010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28988 28989 * gst-libs/gst/vaapi/gstvaapivideopool.c: 28990 * gst-libs/gst/vaapi/gstvaapivideopool.h: 28991 Add a means to cap the number of objects allocated in the pool. 28992 289932010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 28994 28995 * gst-libs/gst/vaapi/gstvaapiprofile.c: 28996 * gst-libs/gst/vaapi/gstvaapiprofile.h: 28997 Add VA entrypoint abstraction. 28998 289992010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29000 29001 * docs/reference/libs/libs-docs.xml.in: 29002 * docs/reference/libs/libs-sections.txt: 29003 * gst-libs/gst/vaapi/Makefile.am: 29004 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29005 * gst-libs/gst/vaapi/gstvaapidisplay.h: 29006 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 29007 * gst-libs/gst/vaapi/gstvaapiprofile.c: 29008 * gst-libs/gst/vaapi/gstvaapiprofile.h: 29009 * tests/test-display.c: 29010 Add VA profile abstraction. 29011 290122010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29013 29014 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29015 Fix OpenGL rendering on G45 systems. 29016 290172010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29018 29019 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29020 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context. 29021 290222010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29023 29024 * gst-libs/gst/vaapi/gstvaapitexture.c: 29025 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29026 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29027 Fix TFP logic and simplify the FBO model. i.e. it's not necessary to create another texture (and storage) for the TFP, simply a new texture name. 29028 290292010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29030 29031 * gst-libs/gst/vaapi/gstvaapitexture.c: 29032 Fix get-out conditions. 29033 290342010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29035 29036 * gst-libs/gst/vaapi/gstvaapitexture.c: 29037 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29038 The shared GL context in GstVaapiTexture is only useful for cases where TFP+FBO are used, thus avoiding the need fully preserve the states and call into glGet*() functions that need synchronization. 29039 290402010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29041 29042 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29043 Shorter structs. 29044 290452010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29046 29047 * docs/reference/libs/libs-sections.txt: 29048 * gst-libs/gst/vaapi/Makefile.am: 29049 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 29050 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h: 29051 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 29052 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 29053 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 29054 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h: 29055 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 29056 * gst-libs/gst/vaapi/gstvaapitexture.c: 29057 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29058 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29059 * tests/test-windows.c: 29060 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way. 29061 290622010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29063 29064 * gst-libs/gst/vaapi/Makefile.am: 29065 * gst-libs/gst/vaapi/gstvaapi_priv.h: 29066 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29067 * gst-libs/gst/vaapi/gstvaapidisplay.h: 29068 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 29069 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h: 29070 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 29071 * gst-libs/gst/vaapi/gstvaapiimage.c: 29072 * gst-libs/gst/vaapi/gstvaapiobject.c: 29073 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29074 * gst-libs/gst/vaapi/gstvaapisurface.c: 29075 * gst-libs/gst/vaapi/gstvaapitexture.c: 29076 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29077 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29078 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29079 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h. 29080 290812010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29082 29083 * gst-libs/gst/vaapi/gstvaapitexture.c: 29084 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29085 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29086 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29087 Improve handling of GL contexts. 29088 290892010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29090 29091 * configure.ac: 29092 Simplify summary. 29093 290942010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29095 29096 * configure.ac: 29097 Bump version for development. 29098 290992010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29100 29101 * configure.ac: 29102 * debian.upstream/Makefile.am: 29103 * debian.upstream/control.in: 29104 Rename -dev package to libgstvaapi-dev. 29105 291062010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29107 29108 * NEWS: 29109 * README: 29110 Updates. 29111 291122010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29113 29114 * gst-libs/gst/vaapi/gstvaapiutils.c: 29115 Fix build with VA-API < 0.30. 29116 291172010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29118 29119 * configure.ac: 29120 * gst-libs/gst/vaapi/gstvaapicompat.h: 29121 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 29122 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 29123 * gst-libs/gst/vaapi/gstvaapitexture.c: 29124 * tests/test-display.c: 29125 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO. 29126 291272010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29128 29129 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29130 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29131 Add TFP and FBO helpers. 29132 291332010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29134 29135 * gst-libs/gst/vaapi/gstvaapiutils.c: 29136 * gst-libs/gst/vaapi/gstvaapiutils.h: 29137 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages. 29138 291392010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29140 29141 * gst-libs/gst/vaapi/gstvaapitexture.c: 29142 * gst-libs/gst/vaapi/gstvaapiutils.c: 29143 * gst-libs/gst/vaapi/gstvaapiutils.h: 29144 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29145 Use a shorter function name. 29146 291472010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29148 29149 * docs/reference/libs/libs-sections.txt: 29150 * gst-libs/gst/vaapi/gstvaapisurface.c: 29151 * gst-libs/gst/vaapi/gstvaapisurface.h: 29152 * gst-libs/gst/vaapi/gstvaapiutils.c: 29153 * gst-libs/gst/vaapi/gstvaapiutils.h: 29154 Add gst_vaapi_surface_query_status() wrapper. 29155 291562010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29157 29158 * docs/reference/plugins/Makefile.am: 29159 Fix leftover during migration. 29160 291612010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29162 29163 * Makefile.am: 29164 * configure.ac: 29165 * docs/reference/plugins/Makefile.am: 29166 * gst/Makefile.am: 29167 * gst/vaapiconvert/Makefile.am: 29168 * gst/vaapiconvert/gstvaapiconvert.c: 29169 * gst/vaapiconvert/gstvaapiconvert.h: 29170 * gst/vaapisink/Makefile.am: 29171 * gst/vaapisink/gstvaapisink.c: 29172 * gst/vaapisink/gstvaapisink.h: 29173 Rename to gst/ as sys/ was too vague. 29174 291752010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29176 29177 * gst-libs/gst/vaapi/gstvaapiimage.c: 29178 * gst-libs/gst/vaapi/gstvaapiimage.h: 29179 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29180 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 29181 * gst-libs/gst/vaapi/gstvaapisurface.c: 29182 * gst-libs/gst/vaapi/gstvaapisurface.h: 29183 Try to not reference VA-API types directly. 29184 291852010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29186 29187 * sys/vaapisink/gstvaapisink.c: 29188 Fix reflection code to preserve aspect ratio. 29189 291902010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29191 29192 * sys/vaapisink/gstvaapisink.c: 29193 * sys/vaapisink/gstvaapisink.h: 29194 Fix fullscreen mode. 29195 291962010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29197 29198 * sys/vaapisink/gstvaapisink.c: 29199 * sys/vaapisink/gstvaapisink.h: 29200 Add OpenGL reflection effect ("use-reflection"). 29201 292022010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29203 29204 * configure.ac: 29205 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29206 Use a projection suitable for rotation around the Y axis. 29207 292082010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29209 29210 * configure.ac: 29211 * sys/vaapisink/Makefile.am: 29212 * sys/vaapisink/gstvaapisink.c: 29213 * sys/vaapisink/gstvaapisink.h: 29214 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default. 29215 292162010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29217 29218 * configure.ac: 29219 * debian.upstream/Makefile.am: 29220 * debian.upstream/control.in: 29221 * debian.upstream/libgstvaapi-glx.install.in: 29222 Add libgstvaapi-glx-0 package. 29223 292242010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29225 29226 * pkgconfig/Makefile.am: 29227 Really fix make distclean. 29228 292292010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29230 29231 * docs/reference/libs/Makefile.am: 29232 Fix make dist. 29233 292342010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29235 29236 * pkgconfig/Makefile.am: 29237 Fix make distclean. 29238 292392010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29240 29241 * tests/Makefile.am: 29242 Fix make dist. 29243 292442010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29245 29246 * docs/reference/libs/Makefile.am: 29247 * docs/reference/libs/libs.core.types: 29248 * docs/reference/libs/libs.glx.types: 29249 * docs/reference/libs/libs.x11.types: 29250 Fix doc build. 29251 292522010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29253 29254 * sys/vaapisink/gstvaapisink.h: 29255 Fix build without GLX. 29256 292572010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29258 29259 * NEWS: 29260 0.1.2. 29261 292622010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29263 29264 * sys/vaapisink/Makefile.am: 29265 * sys/vaapisink/gstvaapisink.c: 29266 * sys/vaapisink/gstvaapisink.h: 29267 Add VA/GLX support to vaapisink. 29268 292692010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29270 29271 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29272 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29273 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29274 Add glXSwapBuffers() workaround for NVIDIA. 29275 292762010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29277 29278 * tests/Makefile.am: 29279 * tests/test-textures.c: 29280 Improve VA/GLX textures test. 29281 292822010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29283 29284 * gst-libs/gst/vaapi/gstvaapitexture.c: 29285 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29286 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29287 Fix texture rendering. 29288 292892010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29290 29291 * docs/reference/libs/libs-docs.xml.in: 29292 * docs/reference/libs/libs-sections.txt: 29293 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29294 * gst-libs/gst/vaapi/gstvaapitexture.c: 29295 Fix documentation. 29296 292972010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29298 29299 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29300 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 29301 Add gst_vaapi_window_glx_put_texture() helper. 29302 293032010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29304 29305 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29306 Fix typos. 29307 293082010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29309 29310 * tests/image.c: 29311 * tests/image.h: 29312 * tests/test-windows.c: 29313 Move code around. 29314 293152010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29316 29317 * gst-libs/gst/vaapi/Makefile.am: 29318 * gst-libs/gst/vaapi/gstvaapitexture.c: 29319 * gst-libs/gst/vaapi/gstvaapitexture.h: 29320 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29321 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29322 Add initial VA/GLX texture abstraction though the API is not good enough yet. 29323 293242010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29325 29326 * docs/reference/libs/libs-sections.txt: 29327 * gst-libs/gst/vaapi/gstvaapiobject.c: 29328 * gst-libs/gst/vaapi/gstvaapiobject.h: 29329 Add gst_vaapi_object_{,un}lock_display() helpers. 29330 293312010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29332 29333 * tests/Makefile.am: 29334 * tests/image.c: 29335 * tests/image.h: 29336 * tests/test-windows.c: 29337 Factor out image utilities. 29338 293392010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29340 29341 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 29342 MT-Safe: lock display. 29343 293442010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29345 29346 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29347 Make sure window resize completed prior to resizing the GL viewport. 29348 293492010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29350 29351 * gst-libs/gst/vaapi/Makefile.am: 29352 gstvaapicompat.h is a private header, don't install it. 29353 293542010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29355 29356 * docs/reference/libs/libs-sections.txt: 29357 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29358 * gst-libs/gst/vaapi/gstvaapidisplay.h: 29359 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 29360 Add gst_vaapi_display_{sync,flush}() helpers. 29361 293622010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29363 29364 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 29365 * sys/vaapisink/gstvaapisink.c: 29366 * sys/vaapisink/gstvaapisink.h: 29367 Add "synchronous" mode. 29368 293692010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29370 29371 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29372 * gst-libs/gst/vaapi/gstvaapidisplay.h: 29373 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names. 29374 293752010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29376 29377 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29378 Restore GLX context only if there is one. 29379 293802010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29381 29382 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29383 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29384 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29385 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 29386 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport. 29387 293882010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29389 29390 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29391 Check GstVaapiWindow::render() is available prior to calling it. 29392 293932010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29394 29395 * tests/Makefile.am: 29396 * tests/test-display.c: 29397 * tests/test-textures.c: 29398 Add VA/GLX display tests. 29399 294002010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29401 29402 * configure.ac: 29403 * gst-libs/gst/vaapi/Makefile.am: 29404 Fix compile flags. 29405 294062010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29407 29408 * docs/reference/libs/Makefile.am: 29409 * docs/reference/libs/libs-docs.xml.in: 29410 * docs/reference/libs/libs-sections.txt: 29411 * docs/reference/libs/libs.types: 29412 Add missing API documentation. 29413 294142010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29415 29416 * configure.ac: 29417 * gst-libs/gst/vaapi/Makefile.am: 29418 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c: 29419 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h: 29420 * gst-libs/gst/vaapi/gstvaapiutils_glx.c: 29421 * gst-libs/gst/vaapi/gstvaapiutils_glx.h: 29422 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c: 29423 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h: 29424 * pkgconfig/Makefile.am: 29425 * pkgconfig/gstreamer-vaapi-glx.pc.in: 29426 * tests/Makefile.am: 29427 * tests/test-textures.c: 29428 Add initial VA/GLX support. 29429 294302010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29431 29432 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29433 Add missing includes (for vaapi_check_status()). 29434 294352010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29436 29437 * gst-libs/gst/vaapi/gstvaapidebug.h: 29438 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff. 29439 294402010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29441 29442 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29443 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 29444 Add gst_vaapi_window_x11_is_foreign_xid() helper. 29445 294462010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29447 29448 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 29449 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 29450 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29451 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 29452 Allow derived classes to specify custom Visual and Colormap. 29453 294542010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29455 29456 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 29457 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 29458 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29459 Allow window creation with a specific visual (e.g. for GLX support). 29460 294612010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29462 29463 * gst-libs/gst/vaapi/gstvaapiimage.c: 29464 Fix return value on error (though it's the same in the end). 29465 294662010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29467 29468 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29469 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 29470 Simplify initialization of VADisplay. 29471 294722010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29473 29474 * configure.ac: 29475 Move __attribute__((visibility("hidden"))) check down. 29476 294772010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29478 29479 * docs/reference/libs/libs-sections.txt: 29480 * gst-libs/gst/vaapi/gstvaapiimage.c: 29481 * gst-libs/gst/vaapi/gstvaapiimage.h: 29482 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29483 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 29484 * gst-libs/gst/vaapi/gstvaapisurface.c: 29485 * gst-libs/gst/vaapi/gstvaapisurface.h: 29486 * tests/test-surfaces.c: 29487 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces. 29488 294892010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29490 29491 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29492 Use the parent display object, no need to maintain another one. 29493 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1. 29494 294952010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29496 29497 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 29498 Add more internal helpers. 29499 295002010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29501 29502 * gst-libs/gst/vaapi/gstvaapiimage.c: 29503 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 29504 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29505 * gst-libs/gst/vaapi/gstvaapisurface.c: 29506 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29507 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29508 Rename to GST_VAAPI_OBJECT_DISPLAY(). 29509 295102010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29511 29512 * docs/reference/libs/libs-sections.txt: 29513 * gst-libs/gst/vaapi/gstvaapiimage.c: 29514 * gst-libs/gst/vaapi/gstvaapiobject.c: 29515 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 29516 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29517 * gst-libs/gst/vaapi/gstvaapisurface.c: 29518 * gst-libs/gst/vaapi/gstvaapitypes.h: 29519 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29520 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value. 29521 295222010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29523 29524 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29525 * gst-libs/gst/vaapi/gstvaapiwindow.h: 29526 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29527 Make GstVaapiWindow* derive from GstVaapiObject. 29528 295292010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29530 29531 * configure.ac: 29532 Factor out use gstreamer-vaapi (PACKAGE name). 29533 295342010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29535 29536 * configure.ac: 29537 Improve versioning summary. 29538 295392010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29540 29541 * gst-libs/gst/vaapi/Makefile.am: 29542 gstvaapicompat.h is now a private header (not installed). 29543 295442010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29545 29546 * gst-libs/gst/vaapi/gstvaapiimage.c: 29547 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 29548 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 29549 * gst-libs/gst/vaapi/gstvaapiobject.c: 29550 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29551 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29552 Include gstvaapicompat.h in source files only, not headers. 29553 295542010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29555 29556 * configure.ac: 29557 * gst-libs/gst/vaapi/Makefile.am: 29558 * sys/vaapiconvert/Makefile.am: 29559 * sys/vaapisink/Makefile.am: 29560 * tests/Makefile.am: 29561 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead. 29562 295632010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29564 29565 * NEWS: 29566 * configure.ac: 29567 * gst-libs/gst/vaapi/Makefile.am: 29568 * gst-libs/gst/vaapi/gstvaapicompat.h: 29569 * gst-libs/gst/vaapi/gstvaapidisplay.h: 29570 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 29571 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 29572 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 29573 * gst-libs/gst/vaapi/gstvaapisurface.c: 29574 * gst-libs/gst/vaapi/gstvaapiutils.c: 29575 * gst-libs/gst/vaapi/gstvaapiutils.h: 29576 * pkgconfig/gstreamer-vaapi-x11.pc.in: 29577 * pkgconfig/gstreamer-vaapi.pc.in: 29578 * sys/vaapiconvert/Makefile.am: 29579 * sys/vaapisink/Makefile.am: 29580 * tests/Makefile.am: 29581 Add compatibility with the original VA-API 0.29. 29582 295832010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29584 29585 * gst-libs/gst/vaapi/gstvaapivalue.h: 29586 Add missing file (gstvaapivalue.h). 29587 295882010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29589 29590 * gst-libs/gst/vaapi/gstvaapiimage.c: 29591 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29592 * gst-libs/gst/vaapi/gstvaapisurface.c: 29593 Fix g_warning() invocation. 29594 295952010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29596 29597 * gst-libs/gst/vaapi/gstvaapisurface.c: 29598 Deassociate subpictures while destroying the surface. 29599 296002010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29601 29602 * gst-libs/gst/vaapi/gstvaapisurface.c: 29603 Fix destruction order of subpictures. They should be destroyed first. 29604 296052010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29606 29607 * NEWS: 29608 * gst-libs/gst/vaapi/gstvaapiimage.c: 29609 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 29610 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 29611 * tests/test-windows.c: 29612 Add support for AYUV format. 29613 296142010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29615 29616 * tests/test-windows.c: 29617 Simplify upload process and fallback to subpictures. 29618 296192010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29620 29621 * docs/reference/libs/libs-docs.xml.in: 29622 * docs/reference/libs/libs-sections.txt: 29623 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 29624 Fix documentation. 29625 296262010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29627 29628 * gst-libs/gst/vaapi/Makefile.am: 29629 * gst-libs/gst/vaapi/gstvaapiobject.c: 29630 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 29631 * gst-libs/gst/vaapi/gstvaapitypes.h: 29632 * gst-libs/gst/vaapi/gstvaapivalue.c: 29633 Move GValue specific stuff to a dedicated file. 29634 296352010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29636 29637 * tests/test-surfaces.c: 29638 Cosmetics (lowercase for consistency). 29639 296402010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29641 29642 * gst-libs/gst/vaapi/gstvaapiobject.c: 29643 Cosmetics (vertical alignment). 29644 296452010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29646 29647 * gst-libs/gst/vaapi/gstvaapiobject.c: 29648 Fix return value on error. 29649 296502010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29651 29652 * docs/reference/libs/libs-sections.txt: 29653 * gst-libs/gst/vaapi/gstvaapiimage.c: 29654 * gst-libs/gst/vaapi/gstvaapiimage.h: 29655 * gst-libs/gst/vaapi/gstvaapiobject.c: 29656 * gst-libs/gst/vaapi/gstvaapiobject.h: 29657 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 29658 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29659 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 29660 * gst-libs/gst/vaapi/gstvaapisurface.c: 29661 * gst-libs/gst/vaapi/gstvaapisurface.h: 29662 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29663 * tests/test-surfaces.c: 29664 Move "id" down to the GstVaapiObject base. 29665 296662010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29667 29668 * gst-libs/gst/vaapi/gstvaapitypes.c: 29669 Cosmetics (drop extraneous empty line). 29670 296712010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29672 29673 * gst-libs/gst/vaapi/Makefile.am: 29674 * gst-libs/gst/vaapi/gstvaapiparamspecs.c: 29675 * gst-libs/gst/vaapi/gstvaapiparamspecs.h: 29676 Add GParamSpecs for GstVaapiID. 29677 296782010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29679 29680 * docs/reference/libs/libs.types: 29681 Drop gst_vaapi_id_get_type(). 29682 296832010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29684 29685 * docs/reference/libs/libs-sections.txt: 29686 * gst-libs/gst/vaapi/gstvaapitypes.h: 29687 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers. 29688 296892010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29690 29691 * docs/reference/libs/libs-sections.txt: 29692 * docs/reference/libs/libs.types: 29693 * gst-libs/gst/vaapi/Makefile.am: 29694 * gst-libs/gst/vaapi/gstvaapitypes.c: 29695 * gst-libs/gst/vaapi/gstvaapitypes.h: 29696 Add GstVaapiID abstraction. 29697 296982010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29699 29700 * docs/reference/libs/libs.types: 29701 Sort types. 29702 297032010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29704 29705 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29706 * gst-libs/gst/vaapi/gstvaapiimage.c: 29707 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29708 * gst-libs/gst/vaapi/gstvaapisurface.c: 29709 Drop useless include (<va/va_backend.h>). 29710 297112010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29712 29713 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 29714 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check. 29715 297162010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29717 29718 * gst-libs/gst/vaapi/Makefile.am: 29719 * gst-libs/gst/vaapi/gstvaapiimage.c: 29720 * gst-libs/gst/vaapi/gstvaapiobject.c: 29721 * gst-libs/gst/vaapi/gstvaapiobject.h: 29722 * gst-libs/gst/vaapi/gstvaapiobject_priv.h: 29723 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29724 * gst-libs/gst/vaapi/gstvaapisurface.c: 29725 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29726 Move private definitions and accessors to gstvaapiobject_priv.h. 29727 297282010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29729 29730 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29731 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 29732 * gst-libs/gst/vaapi/gstvaapiimage.c: 29733 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 29734 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 29735 * gst-libs/gst/vaapi/gstvaapiobject.c: 29736 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29737 * gst-libs/gst/vaapi/gstvaapisurface.c: 29738 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 29739 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 29740 * gst-libs/gst/vaapi/gstvaapivideopool.c: 29741 * gst-libs/gst/vaapi/gstvaapivideosink.c: 29742 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29743 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29744 Fix short descriptions. 29745 297462010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29747 29748 * Makefile.am: 29749 * configure.ac: 29750 * debian.upstream/Makefile.am: 29751 * debian.upstream/changelog.in: 29752 * debian.upstream/compat: 29753 * debian.upstream/control.in: 29754 * debian.upstream/copyright: 29755 * debian.upstream/gstreamer-vaapi-doc.install.in: 29756 * debian.upstream/gstreamer-vaapi.install.in: 29757 * debian.upstream/libgstvaapi-dev.install.in: 29758 * debian.upstream/libgstvaapi-x11.install.in: 29759 * debian.upstream/libgstvaapi.install.in: 29760 * debian.upstream/rules: 29761 Generate upstream packages through make deb.upstream. 29762 297632010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29764 29765 * configure.ac: 29766 Bump version for development. 29767 297682010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29769 29770 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 29771 Use a black background for new windows. 29772 297732010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29774 29775 * NEWS: 29776 0.1.1. 29777 297782010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29779 29780 * configure.ac: 29781 * docs/reference/libs/libs.types: 29782 * gst-libs/gst/vaapi/Makefile.am: 29783 * gst-libs/gst/vaapi/gstvaapimarshal.list: 29784 * gst-libs/gst/vaapi/gstvaapiobject.c: 29785 * gst-libs/gst/vaapi/gstvaapiobject.h: 29786 * tests/test-surfaces.c: 29787 Add "destroy" signal. 29788 297892010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29790 29791 * docs/reference/libs/libs-docs.xml.in: 29792 Improve gst-plugins-vaapi Library reference template. 29793 297942010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29795 29796 * docs/reference/libs/libs-docs.xml.in: 29797 * docs/reference/libs/libs-sections.txt: 29798 * gst-libs/gst/vaapi/Makefile.am: 29799 * gst-libs/gst/vaapi/gstvaapiimage.c: 29800 * gst-libs/gst/vaapi/gstvaapiimage.h: 29801 * gst-libs/gst/vaapi/gstvaapiobject.c: 29802 * gst-libs/gst/vaapi/gstvaapiobject.h: 29803 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29804 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 29805 * gst-libs/gst/vaapi/gstvaapisurface.c: 29806 * gst-libs/gst/vaapi/gstvaapisurface.h: 29807 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29808 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject. 29809 298102010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29811 29812 * sys/vaapisink/gstvaapisink.c: 29813 Fix return value. 29814 298152010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29816 29817 * sys/vaapisink/gstvaapisink.c: 29818 Make sure VA display is valid when created with an explicit "display" name. 29819 298202010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29821 29822 * sys/vaapisink/gstvaapisink.c: 29823 Use plain "display" property for the X11 display name. 29824 298252010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29826 29827 * sys/vaapiconvert/gstvaapiconvert.c: 29828 * sys/vaapisink/gstvaapisink.c: 29829 Document vaapiconvert & vaapisink plugins. 29830 298312010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29832 29833 * configure.ac: 29834 * docs/reference/Makefile.am: 29835 * docs/reference/plugins/Makefile.am: 29836 * docs/reference/plugins/plugins-docs.xml.in: 29837 * docs/reference/plugins/plugins-overrides.txt: 29838 * docs/reference/plugins/plugins-sections.txt: 29839 * docs/reference/plugins/plugins.types: 29840 Add plugins documentation template. 29841 298422010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29843 29844 * sys/vaapisink/gstvaapisink.c: 29845 * sys/vaapisink/gstvaapisink.h: 29846 Don't export gst_vaapisink_get_display(). 29847 298482010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29849 29850 * configure.ac: 29851 * docs/reference/libs/libs-docs.xml.in: 29852 * gst-libs/gst/vaapi/gstvaapidisplay.c: 29853 * gst-libs/gst/vaapi/gstvaapiimage.c: 29854 * gst-libs/gst/vaapi/gstvaapisurface.c: 29855 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29856 Drop introspection annotations since they require gtk-doc >= 1.12. 29857 298582010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29859 29860 * gst-libs/gst/vaapi/gstvaapisurface.c: 29861 Add note about the fact that the surface holds an extra reference to the subpicture. 29862 298632010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29864 29865 * gst-libs/gst/vaapi/gstvaapiimage.c: 29866 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 29867 * gst-libs/gst/vaapi/gstvaapisurface.c: 29868 Improve debugging messages. 29869 298702010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29871 29872 * tests/test-windows.c: 29873 Unref subpicture earlier as the surface is supposed to hold a reference to it. 29874 298752010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29876 29877 * docs/reference/libs/libs-sections.txt: 29878 * gst-libs/gst/vaapi/gstvaapisurface.c: 29879 * gst-libs/gst/vaapi/gstvaapisurface.h: 29880 * tests/test-windows.c: 29881 Add gst_vaapi_surface_{,de}associate_subpicture() API. 29882 298832010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29884 29885 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29886 Wait for MapNotify or UnmapNotify events on foreign windows too. 29887 298882010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29889 29890 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29891 Check whether the foreign XID is mapped at binding time. 29892 298932010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29894 29895 * sys/vaapisink/gstvaapisink.c: 29896 Add missing includes. 29897 298982010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29899 29900 * configure.ac: 29901 * debian/Makefile.am: 29902 * debian/control.in: 29903 * debian/gstreamer-vaapi-doc.install.in: 29904 * debian/rules: 29905 Add -doc package. 29906 299072010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29908 29909 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29910 Fix warnings (drop extraneous var). 29911 299122010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29913 29914 * docs/reference/libs/libs-sections.txt: 29915 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 29916 Add GST_VAAPI_WINDOW_XWINDOW() helper macro. 29917 299182010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29919 29920 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29921 Shorten condition. 29922 299232010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29924 29925 * gst-libs/gst/vaapi/Makefile.am: 29926 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29927 * gst-libs/gst/vaapi/gstvaapiwindow.h: 29928 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 29929 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29930 Try to improve switch to fullscreen mode. 29931 299322010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29933 29934 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 29935 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 29936 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29937 Improve display locking and rework X event wait functions. 29938 299392010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29940 29941 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29942 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 29943 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h. 29944 299452010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29946 29947 * gst-libs/gst/vaapi/Makefile.am: 29948 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29949 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h: 29950 Add private API to set window size & fullscreen modes without triggering any notification or virtual functions. This is useful for derived class to fix up sizes whenever appropriate. 29951 299522010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29953 29954 * docs/reference/libs/libs-sections.txt: 29955 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29956 * gst-libs/gst/vaapi/gstvaapiwindow.h: 29957 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property. 29958 299592010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29960 29961 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29962 * gst-libs/gst/vaapi/gstvaapiwindow.h: 29963 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29964 Add gst_vaapi_window_get_display() to base. 29965 299662010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29967 29968 * docs/reference/libs/libs-docs.xml.in: 29969 * docs/reference/libs/libs-sections.txt: 29970 * gst-libs/gst/vaapi/Makefile.am: 29971 * gst-libs/gst/vaapi/gstvaapitypes.h: 29972 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29973 * gst-libs/gst/vaapi/gstvaapiwindow.h: 29974 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29975 * sys/vaapisink/gstvaapisink.c: 29976 * sys/vaapisink/gstvaapisink.h: 29977 Add GstVaapiPoint & GstVaapiRectangle data structures. 29978 299792010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29980 29981 * NEWS: 29982 0.1.1. 29983 299842010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29985 29986 * NEWS: 29987 * sys/vaapisink/gstvaapisink.c: 29988 * sys/vaapisink/gstvaapisink.h: 29989 Allow `vaapisink` to render videos in fullscreen mode. 29990 299912010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 29992 29993 * docs/reference/libs/libs-sections.txt: 29994 * gst-libs/gst/vaapi/gstvaapiwindow.c: 29995 * gst-libs/gst/vaapi/gstvaapiwindow.h: 29996 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 29997 Add gst_vaapi_window_set_fullscreen() API. 29998 299992010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30000 30001 * sys/vaapisink/gstvaapisink.c: 30002 Size window so that to respect the video and pixel aspect ratio. 30003 300042010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30005 30006 * docs/reference/libs/libs-sections.txt: 30007 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30008 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30009 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30010 * tests/test-display.c: 30011 Add gst_vaapi_display_get_pixel_aspect_ratio(). 30012 300132010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30014 30015 * docs/reference/libs/libs-sections.txt: 30016 Updates. 30017 300182010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30019 30020 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30021 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30022 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30023 * tests/test-display.c: 30024 Add display size accessors. 30025 300262010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30027 30028 * configure.ac: 30029 * debian/control.in: 30030 Build-Requires: gstreamer-plugins-base >= 0.10.16. 30031 300322010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30033 30034 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30035 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30036 * gst-libs/gst/vaapi/gstvaapiimage.h: 30037 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 30038 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 30039 * gst-libs/gst/vaapi/gstvaapisurface.h: 30040 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 30041 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 30042 * gst-libs/gst/vaapi/gstvaapivideopool.h: 30043 * gst-libs/gst/vaapi/gstvaapiwindow.h: 30044 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 30045 Fix documentation of *Class'es. 30046 300472010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30048 30049 * gst-libs/gst/vaapi/gstvaapiutils.c: 30050 * gst-libs/gst/vaapi/gstvaapiutils.h: 30051 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30052 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags(). 30053 300542010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30055 30056 * docs/reference/libs/libs-sections.txt: 30057 * gst-libs/gst/vaapi/gstvaapisurface.h: 30058 * gst-libs/gst/vaapi/gstvaapiwindow.h: 30059 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h. 30060 300612010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30062 30063 * docs/reference/libs/libs-sections.txt: 30064 * gst-libs/gst/vaapi/gstvaapiwindow.c: 30065 * gst-libs/gst/vaapi/gstvaapiwindow.h: 30066 * sys/vaapisink/gstvaapisink.c: 30067 * tests/test-windows.c: 30068 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface(). 30069 300702010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30071 30072 * docs/reference/libs/Makefile.am: 30073 Fix make dist for --enable-gtk-doc builds. 30074 300752010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30076 30077 * autogen.sh: 30078 Improve autogen.sh. 30079 300802010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30081 30082 * Makefile.am: 30083 * autogen.sh: 30084 Generate gtk-doc.make from gtkdocize. 30085 300862010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30087 30088 * Makefile.am: 30089 * NEWS: 30090 * configure.ac: 30091 * docs/Makefile.am: 30092 * docs/reference/Makefile.am: 30093 * docs/reference/libs/Makefile.am: 30094 * docs/reference/libs/libs-docs.xml.in: 30095 * docs/reference/libs/libs-overrides.txt: 30096 * docs/reference/libs/libs-sections.txt: 30097 * docs/reference/libs/libs.types: 30098 Document public API for libgstvaapi-*.so.*. 30099 301002010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30101 30102 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 30103 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 30104 Document GstVaapiVideoBuffer. 30105 301062010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30107 30108 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 30109 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 30110 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 30111 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 30112 * gst-libs/gst/vaapi/gstvaapivideopool.c: 30113 * gst-libs/gst/vaapi/gstvaapivideopool.h: 30114 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function. 30115 301162010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30117 30118 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30119 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30120 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30121 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30122 * gst-libs/gst/vaapi/gstvaapiimage.c: 30123 * gst-libs/gst/vaapi/gstvaapiimage.h: 30124 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30125 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 30126 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30127 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 30128 * gst-libs/gst/vaapi/gstvaapisurface.c: 30129 * gst-libs/gst/vaapi/gstvaapisurface.h: 30130 * gst-libs/gst/vaapi/gstvaapivideosink.c: 30131 * gst-libs/gst/vaapi/gstvaapivideosink.h: 30132 * gst-libs/gst/vaapi/gstvaapiwindow.c: 30133 * gst-libs/gst/vaapi/gstvaapiwindow.h: 30134 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30135 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 30136 Add tedious documentation. 30137 301382010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30139 30140 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30141 Beautify append_formats(). 30142 301432010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30144 30145 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30146 Simplify GstVaapiDisplay (use GArray). 30147 301482010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30149 30150 * NEWS: 30151 * sys/vaapiconvert/gstvaapiconvert.c: 30152 * sys/vaapiconvert/gstvaapiconvert.h: 30153 Factor out direct-rendering infrastructure. 30154 301552010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30156 30157 * sys/vaapiconvert/gstvaapiconvert.c: 30158 * sys/vaapiconvert/gstvaapiconvert.h: 30159 Allow user to specify inout-buffers & derive-image optimizations. 30160 301612010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30162 30163 * sys/vaapiconvert/gstvaapiconvert.c: 30164 Reduce number of debug messaged printed out. 30165 301662010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30167 30168 * sys/vaapiconvert/gstvaapiconvert.c: 30169 * sys/vaapiconvert/gstvaapiconvert.h: 30170 Add vaDeriveImage() optimization. 30171 301722010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30173 30174 * gst-libs/gst/vaapi/gstvaapiimage.c: 30175 Fix gst_vaapi_image_create() from a foreign VA image. 30176 301772010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30178 30179 * gst-libs/gst/vaapi/gstvaapiimage.c: 30180 * gst-libs/gst/vaapi/gstvaapiimage.h: 30181 * gst-libs/gst/vaapi/gstvaapisurface.c: 30182 * gst-libs/gst/vaapi/gstvaapisurface.h: 30183 Add gst_vaapi_surface_derive_image() API. 30184 301852010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30186 30187 * gst-libs/gst/vaapi/gstvaapiwindow.c: 30188 * gst-libs/gst/vaapi/gstvaapiwindow.h: 30189 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30190 Make it possible to bin an X11 window to GstVaapiWindowX11 with plain g_object_new() and "xid" property. i.e. get foreign window size in gst_vaapi_window_x11_create(). 30191 301922010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30193 30194 * tests/test-windows.c: 30195 Try YV12 & I420 image formats too. 30196 301972010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30198 30199 * gst-libs/gst/vaapi/gstvaapiimage.c: 30200 Split map/unmap functions into internal functions that don't check preconditions. 30201 302022010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30203 30204 * gst-libs/gst/vaapi/gstvaapiimage.c: 30205 Improve gst_vaapi_image_new() sanity checks. 30206 302072010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30208 30209 * tests/test-windows.c: 30210 Fix typo. 30211 302122010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30213 30214 * sys/vaapiconvert/gstvaapiconvert.c: 30215 Check if our inout buffer is still alive or default to a separate output buffer. 30216 302172010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30218 30219 * sys/vaapiconvert/gstvaapiconvert.c: 30220 * sys/vaapiconvert/gstvaapiconvert.h: 30221 Factor out buffers negotiation and optimization checks. 30222 302232010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30224 30225 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30226 * gst-libs/gst/vaapi/gstvaapiimage.c: 30227 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 30228 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 30229 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30230 * sys/vaapiconvert/gstvaapiconvert.h: 30231 Use gtypes. 30232 302332010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30234 30235 * gst-libs/gst/vaapi/gstvaapiimage.c: 30236 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer(). 30237 302382010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30239 30240 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30241 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30242 * gst-libs/gst/vaapi/gstvaapiimage.c: 30243 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30244 * gst-libs/gst/vaapi/gstvaapisurface.c: 30245 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30246 Add VA display locking utilities. 30247 302482010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30249 30250 * sys/vaapisink/gstvaapisink.c: 30251 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks. 30252 302532010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30254 30255 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30256 * tests/test-windows.c: 30257 Don't show window by default during creation. 30258 302592010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30260 30261 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30262 Fix gst_vaapi_window_x11_destroy(). 30263 302642010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30265 30266 * sys/vaapiconvert/gstvaapiconvert.c: 30267 * sys/vaapiconvert/gstvaapiconvert.h: 30268 Alias sink & src pad buffers whenever possible. 30269 302702010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30271 30272 * gst-libs/gst/vaapi/gstvaapiimage.c: 30273 * gst-libs/gst/vaapi/gstvaapiimage.h: 30274 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size(). 30275 302762010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30277 30278 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 30279 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 30280 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time. 30281 302822010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30283 30284 * sys/vaapiconvert/gstvaapiconvert.c: 30285 Fix image & surface size cache. 30286 302872010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30288 30289 * configure.ac: 30290 Move gstreamer-vaapi package versioning to the top. 30291 302922010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30293 30294 * configure.ac: 30295 Bump version for development. 30296 302972010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30298 30299 * configure.ac: 30300 Cosmetics (shorten lines). 30301 303022010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30303 30304 * NEWS: 30305 * README: 30306 Update docs. 30307 303082010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30309 30310 * debian/Makefile.am: 30311 * debian/changelog.in: 30312 * debian/compat: 30313 * debian/control.in: 30314 * debian/copyright: 30315 * debian/gstreamer-vaapi.install.in: 30316 * debian/libgstvaapi-dev.install.in: 30317 * debian/libgstvaapi-x11.install.in: 30318 * debian/libgstvaapi.install.in: 30319 * debian/rules: 30320 Add debian packaging. 30321 303222010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30323 30324 * Makefile.am: 30325 * configure.ac: 30326 Add debian packaging. 30327 303282010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30329 30330 * pkgconfig/Makefile.am: 30331 Silence GNU make extensions warning. 30332 303332010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30334 30335 * configure.ac: 30336 Add AM_PROG_CC_C_O, thus fixing this warning: tests/Makefile.am:16: compiling `test-display.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.ac' 30337 303382010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30339 30340 * Makefile.am: 30341 * configure.ac: 30342 * pkgconfig/Makefile.am: 30343 * pkgconfig/gstreamer-vaapi-x11.pc.in: 30344 * pkgconfig/gstreamer-vaapi.pc.in: 30345 Add pkgconfig files. 30346 303472010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30348 30349 * configure.ac: 30350 * gst-libs/gst/vaapi/Makefile.am: 30351 * sys/vaapisink/Makefile.am: 30352 * tests/Makefile.am: 30353 Split X11 support to libgstvaapi-x11-*.so.* 30354 303552010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30356 30357 * gst-libs/gst/vaapi/Makefile.am: 30358 Don't install private headers. 30359 303602010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30361 30362 * gst-libs/gst/vaapi/gstvaapidebug.h: 30363 * gst-libs/gst/vaapi/gstvaapiutils.c: 30364 * gst-libs/gst/vaapi/gstvaapiutils.h: 30365 Fix header guards. 30366 303672010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30368 30369 * gst-libs/gst/vaapi/Makefile.am: 30370 * gst-libs/gst/vaapi/gstvaapidebug.h: 30371 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30372 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30373 * gst-libs/gst/vaapi/gstvaapiimage.c: 30374 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 30375 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30376 * gst-libs/gst/vaapi/gstvaapisurface.c: 30377 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 30378 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 30379 * gst-libs/gst/vaapi/gstvaapivideopool.c: 30380 * gst-libs/gst/vaapi/gstvaapiwindow.c: 30381 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30382 Rename vaapi_debug.h to gstvaapidebug.h. 30383 303842010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30385 30386 * gst-libs/gst/vaapi/Makefile.am: 30387 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30388 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30389 * gst-libs/gst/vaapi/gstvaapiimage.c: 30390 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30391 * gst-libs/gst/vaapi/gstvaapisurface.c: 30392 * gst-libs/gst/vaapi/gstvaapiutils.c: 30393 * gst-libs/gst/vaapi/gstvaapiutils.h: 30394 * gst-libs/gst/vaapi/vaapi_debug.h: 30395 Move vaapi_utils.* to gstvaapiutils.* 30396 303972010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30398 30399 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 30400 Cosmetics (remove an extra line). 30401 304022010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30403 30404 * gst-libs/gst/vaapi/Makefile.am: 30405 * gst-libs/gst/vaapi/gstvaapiutils_x11.c: 30406 * gst-libs/gst/vaapi/gstvaapiutils_x11.h: 30407 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30408 Move X11 utilties to gstvaapiutils_x11.[ch]. 30409 304102010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30411 30412 * gst-libs/gst/vaapi/Makefile.am: 30413 * gst-libs/gst/vaapi/gstvaapivideosink.c: 30414 * gst-libs/gst/vaapi/gstvaapivideosink.h: 30415 * sys/vaapiconvert/gstvaapiconvert.c: 30416 * sys/vaapisink/gstvaapisink.c: 30417 Rename GstVaapiSinkBase to GstVaapiVideoSink. 30418 304192010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30420 30421 * configure.ac: 30422 * tests/Makefile.am: 30423 * tests/examples/Makefile.am: 30424 * tests/examples/generic/Makefile.am: 30425 * tests/test-display.c: 30426 * tests/test-surfaces.c: 30427 * tests/test-windows.c: 30428 Move tests to top-level tests/ directory. 30429 304302010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30431 30432 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30433 * gst-libs/gst/vaapi/gstvaapiimage.c: 30434 * sys/vaapiconvert/gstvaapiconvert.c: 30435 * sys/vaapiconvert/gstvaapiconvert.h: 30436 Handle I420 formats internally in GstVaapiImage. 30437 304382010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30439 30440 * sys/vaapiconvert/gstvaapiconvert.c: 30441 * sys/vaapiconvert/gstvaapiconvert.h: 30442 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not. 30443 304442010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30445 30446 * gst-libs/gst/vaapi/gstvaapiimage.c: 30447 Implement I420 and YV12 if the underlying implementation does not. 30448 304492010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30450 30451 * sys/vaapiconvert/Makefile.am: 30452 * sys/vaapiconvert/gstvaapiconvert.c: 30453 * sys/vaapiconvert/gstvaapiconvert.h: 30454 Add initial vaapiconvert plugin. 30455 304562010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30457 30458 * sys/vaapisink/gstvaapisink.c: 30459 * sys/vaapisink/gstvaapisink.h: 30460 Display frames. 30461 304622010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30463 30464 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30465 Factor out. 30466 304672010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30468 30469 * tests/examples/generic/test-windows.c: 30470 Generate R/G/B rects. 30471 304722010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30473 30474 * gst-libs/gst/vaapi/gstvaapisurface.c: 30475 * gst-libs/gst/vaapi/gstvaapisurface.h: 30476 Add gst_vaapi_surface_sync(). 30477 304782010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30479 30480 * gst-libs/gst/vaapi/gstvaapiimage.c: 30481 Cosmetics (reverse args order). 30482 304832010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30484 30485 * gst-libs/gst/vaapi/gstvaapiimage.c: 30486 * gst-libs/gst/vaapi/gstvaapiimage.h: 30487 * gst-libs/gst/vaapi/gstvaapisurface.c: 30488 Cosmetics. 30489 304902010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30491 30492 * gst-libs/gst/vaapi/Makefile.am: 30493 * gst-libs/gst/vaapi/gstvaapiwindow.c: 30494 * gst-libs/gst/vaapi/gstvaapiwindow.h: 30495 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c: 30496 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h: 30497 * tests/examples/generic/Makefile.am: 30498 * tests/examples/generic/test-windows.c: 30499 Add VA/X11 window abstraction. 30500 305012010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30502 30503 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30504 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30505 Add VA and X11 display accessors. 30506 305072010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30508 30509 * gst-libs/gst/vaapi/gstvaapiimage.c: 30510 Fix preconditions. 30511 305122010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30513 30514 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30515 Cosmetics. 30516 305172010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30518 30519 * gst-libs/gst/vaapi/gstvaapiimage.c: 30520 * gst-libs/gst/vaapi/gstvaapiimage.h: 30521 * gst-libs/gst/vaapi/gstvaapisurface.c: 30522 * gst-libs/gst/vaapi/gstvaapisurface.h: 30523 Add gst_vaapi_{get,put}_image() API. 30524 305252010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30526 30527 * gst-libs/gst/vaapi/gstvaapiimage.c: 30528 * gst-libs/gst/vaapi/gstvaapiimage.h: 30529 Add gst_vaapi_image_update_from_buffer() helper. 30530 305312010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30532 30533 * sys/vaapisink/Makefile.am: 30534 * sys/vaapisink/gstvaapisink.c: 30535 * sys/vaapisink/gstvaapisink.h: 30536 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better. 30537 305382010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30539 30540 * tests/examples/generic/Makefile.am: 30541 * tests/examples/generic/test-surfaces.c: 30542 Add surface tests. 30543 305442010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30545 30546 * gst-libs/gst/vaapi/Makefile.am: 30547 * gst-libs/gst/vaapi/gstvaapivideobuffer.c: 30548 * gst-libs/gst/vaapi/gstvaapivideobuffer.h: 30549 Add basic GstVaapiVideoBuffer. 30550 305512010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30552 30553 * gst-libs/gst/vaapi/Makefile.am: 30554 * gst-libs/gst/vaapi/gstvaapiimagepool.c: 30555 * gst-libs/gst/vaapi/gstvaapiimagepool.h: 30556 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 30557 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 30558 * gst-libs/gst/vaapi/gstvaapivideopool.c: 30559 * gst-libs/gst/vaapi/gstvaapivideopool.h: 30560 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool. 30561 305622010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30563 30564 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30565 Simplify format conversion code. 30566 305672010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30568 30569 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30570 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 30571 Add gst_vaapi_image_format_from_caps() helper. 30572 305732010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30574 30575 * gst-libs/gst/vaapi/Makefile.am: 30576 * gst-libs/gst/vaapi/gstvaapisurfacepool.c: 30577 * gst-libs/gst/vaapi/gstvaapisurfacepool.h: 30578 Add VA surface pool (lazy allocator). 30579 305802010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30581 30582 * gst-libs/gst/vaapi/gstvaapisurface.c: 30583 * gst-libs/gst/vaapi/gstvaapisurface.h: 30584 Add gst_vaapi_surface_get_size() helper. 30585 305862010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30587 30588 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30589 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it. 30590 305912010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30592 30593 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30594 Reset display-name if the user provided his own X11 display. 30595 305962010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30597 30598 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30599 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30600 * tests/examples/generic/test-display.c: 30601 Add gst_vaapi_display_x11_new_with_display() API. 30602 306032010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30604 30605 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30606 * gst-libs/gst/vaapi/gstvaapiimage.h: 30607 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 30608 * gst-libs/gst/vaapi/gstvaapisurface.h: 30609 Fix *_GET_CLASS() definitions... 30610 306112010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30612 30613 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30614 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30615 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30616 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30617 * tests/examples/generic/test-display.c: 30618 API change: gst_vaapi_display_x11_new() now takes an X11 display name. 30619 306202010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30621 30622 * gst-libs/gst/vaapi/gstvaapisurface.c: 30623 * gst-libs/gst/vaapi/gstvaapisurface.h: 30624 Use GstVaapiChromaType abstraction. 30625 306262010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30627 30628 * gst-libs/gst/vaapi/gstvaapiimage.c: 30629 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30630 * gst-libs/gst/vaapi/gstvaapisurface.c: 30631 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so. 30632 306332010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30634 30635 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30636 Don't warn on failure, just return an appropriate error or value. 30637 306382010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30639 30640 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30641 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30642 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 30643 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference. 30644 306452010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30646 30647 * gst-libs/gst/vaapi/Makefile.am: 30648 * gst-libs/gst/vaapi/gstvaapisinkbase.c: 30649 * gst-libs/gst/vaapi/gstvaapisinkbase.h: 30650 Add helper interface that all VA-API sinks must implement. e.g. vaapisink. 30651 306522010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30653 30654 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30655 * gst-libs/gst/vaapi/gstvaapiimage.c: 30656 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30657 * gst-libs/gst/vaapi/gstvaapisurface.c: 30658 * gst-libs/gst/vaapi/vaapi_debug.h: 30659 Use GST_DEBUG. 30660 306612010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30662 30663 * gst-libs/gst/vaapi/gstvaapiimage.c: 30664 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30665 Fix GstVaapiImage and GstVaapiSubpicture initialization. 30666 306672010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30668 30669 * gst-libs/gst/vaapi/gstvaapisurface.c: 30670 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful... 30671 306722010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30673 30674 * tests/examples/generic/test-display.c: 30675 Dump caps. 30676 306772010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30678 30679 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30680 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30681 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30682 Fix GstVaapiDisplay initialization. 30683 306842010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30685 30686 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30687 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30688 Get VA image & subpicture formats as GstCaps. 30689 306902010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30691 30692 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30693 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 30694 Add helper to convert from GstVaapiImageFormat to GstCaps. 30695 306962010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30697 30698 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30699 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30700 * gst-libs/gst/vaapi/gstvaapisurface.c: 30701 Cosmetics (drop unused variables). 30702 307032010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30704 30705 * configure.ac: 30706 * sys/vaapiconvert/Makefile.am: 30707 * sys/vaapiconvert/gstvaapiconvert.c: 30708 * sys/vaapiconvert/gstvaapiconvert.h: 30709 * sys/vaapisink/Makefile.am: 30710 * sys/vaapisink/gstvaapisink.c: 30711 * sys/vaapisink/gstvaapisink.h: 30712 Add boilerplate for vaapiconvert and vaapisink elements. 30713 307142010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30715 30716 * configure.ac: 30717 * sys/Makefile.am: 30718 * sys/vaapiconvert/Makefile.am: 30719 Add vaapiconvert element hierarchy. 30720 307212010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30722 30723 * sys/vaapisink/Makefile.am: 30724 Rename to vaapisink. 30725 307262010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30727 30728 * gst-libs/gst/vaapi/gstvaapisurface.c: 30729 Shorter code (and more correct). 30730 307312010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30732 30733 * gst-libs/gst/vaapi/gstvaapisurface.c: 30734 * gst-libs/gst/vaapi/gstvaapisurface.h: 30735 Add helper to get GstVaapiDisplay from a surface. 30736 307372010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30738 30739 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30740 Fix subpicture formats list length. 30741 307422010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30743 30744 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30745 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30746 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile. 30747 307482010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30749 30750 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30751 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30752 Cosmetics (more checks, includes). 30753 307542010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30755 30756 * gst-libs/gst/vaapi/gstvaapisubpicture.c: 30757 * gst-libs/gst/vaapi/gstvaapisubpicture.h: 30758 Really add VA subpicture abstraction. 30759 307602010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30761 30762 * gst-libs/gst/vaapi/Makefile.am: 30763 * gst-libs/gst/vaapi/gstvaapiimage.c: 30764 * gst-libs/gst/vaapi/gstvaapiimage.h: 30765 * gst-libs/gst/vaapi/gstvaapiimageformat.c: 30766 * gst-libs/gst/vaapi/gstvaapiimageformat.h: 30767 * gst-libs/gst/vaapi/gstvaapisurface.c: 30768 * gst-libs/gst/vaapi/gstvaapisurface.h: 30769 Add VA surface, image, subpicture abstractions. Ported over from Gnash. 30770 307712010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30772 30773 * configure.ac: 30774 * gst-libs/gst/vaapi/Makefile.am: 30775 * gst-libs/gst/vaapi/gstvaapidisplay.c: 30776 * gst-libs/gst/vaapi/gstvaapidisplay.h: 30777 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c: 30778 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h: 30779 * gst-libs/gst/vaapi/vaapi_debug.h: 30780 * gst-libs/gst/vaapi/vaapi_utils.c: 30781 * gst-libs/gst/vaapi/vaapi_utils.h: 30782 * tests/examples/generic/Makefile.am: 30783 * tests/examples/generic/test-display.c: 30784 Add initial VA display abstraction. 30785 307862010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30787 30788 * Makefile.am: 30789 * configure.ac: 30790 * tests/Makefile.am: 30791 * tests/examples/Makefile.am: 30792 * tests/examples/generic/Makefile.am: 30793 Add tests infrastructure. 30794 307952010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30796 30797 * configure.ac: 30798 Clean up VA-API checks. 30799 308002010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969> 30801 30802 * configure.ac: 30803 Check for __attribute__((visibility("hidden"))). 30804 30805