File: ChangeLog

package info (click to toggle)
gst-plugins-bad1.0 1.28.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 72,392 kB
  • sloc: ansic: 745,372; cpp: 300,329; objc: 3,634; xml: 3,351; sh: 1,095; python: 608; makefile: 181; java: 75
file content (10271 lines) | stat: -rw-r--r-- 462,523 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
=== release 1.28.1 ===

2026-02-26 01:44:06 +0000  Tim-Philipp Müller <tim@centricular.com>

	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.28.1

2026-02-23 13:21:25 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Validate num_decoding_units_minus1 in pic_timing SEI
	  Fixes GST-SA-2026-0012.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10904>

2026-02-20 13:34:50 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	  h266parser: Fix out of bounds write when parsing pic_timing SEI
	  Validate num_decoding_units_minus1 against the array bounds in
	  GstH266PicTiming using READ_UE_MAX.
	  Fixes ZDI-CAN-28839, CVE-2026-3081, GST-SA-2026-0010.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4898
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10901>

2026-02-20 17:40:24 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Fix APS ID bounds check in APS parsing
	  Use GST_H266_MAX_APS_COUNT - 1 as the upper bound to match the spec
	  constraint and array size.
	  Fixes ZDI-CAN-28911, CVE-2026-3086, GST-SA-2026-0009.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4904
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10899>

2026-02-20 17:10:04 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  h266parser: Validate tile index bounds in picture partition parsing
	  Ensure computed tile_idx stays within valid range before using it
	  as an array index to prevent out-of-bounds reads.
	  Fixes ZDI-CAN-28910, CVE-2026-3084, SA-2026-0011.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4902
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10898>

2026-02-11 22:07:49 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/codecparsers/gstjpegparser.c:
	  libs: jpegparser: boundary checks before copying it
	  READ_BYTES macro reads data from a byte reader and then copy it to a storage
	  variable. This patch adds a validation that the length to read cannot be bigger
	  than the storage size.
	  This macro right now is used only for storage variables of guint8 arrays.
	  We have validated in the specification (sections F.1.2.1.2 and F.1.2.2.1 in ITU
	  T.81) that Huffman tables (both AC and DC) aren't bigger than 256.
	  Fixes SA-2026-0003, CVE-2026-3082, ZDI-CAN-28840.
	  Fixes: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4899>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10896>

2026-02-12 09:50:23 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/dvb-sub.c:
	  dvbsuboverlay: Avoid integer overflows and unreasonably large displays/regions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10894>

2026-02-11 20:45:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/dvb-sub.c:
	  dvbsuboverlay: Add missing bounds checks to the parser everywhere
	  Fixes SA-2026-0007, ZDI-CAN-28838, CVE-2026-2923.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4897
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10894>

2026-02-25 17:22:52 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/dvb-sub.c:
	* gst/dvbsuboverlay/dvb-sub.h:
	  dvbsuboverlay: Mark parsed byte array as const
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10894>

2026-02-22 02:50:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/meson.build:
	  applemedia: Small simplifications to the vulkan checks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-22 02:49:34 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/avfvideosrc.h:
	  avfvideosrc: Small fixes to the plugin header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-22 02:45:15 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	  applemedia: Get rid of AVFoundation-related defines
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-22 00:41:33 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	  applemedia: Remove outdated HAVE_VIDEOTOOLBOX define
	  All platform versions we support have VideoToolbox now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-22 00:38:33 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* sys/applemedia/vtenc.c:
	  applemedia: Fix broken HAVE_VIDEOTOOLBOX_10_9_6 define
	  We now use VTCompressionSessionPrepareToEncodeFrames() correctly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-22 00:55:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/meson.build:
	  applemedia: Sort sources list, fix indentation
	  No functional changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10874>

2026-02-20 13:23:06 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  vtdec: Calculate DTS offset correctly
	  Previous method was too simple and didn't offset DTS enough.
	  videotestsrc ! vtenc_h264 ! qtmux ! fakesink with GST_DEBUG=2 showed
	  qtmux complaining about DTS > PTS right away, on latest macOS at least.
	  If we only ever get one frame from upstream, it'll get pushed out when
	  drain() is called. Otherwise, it goes out as soon as the second frame
	  arrives and we can calculate the offset. Of course in some cases we know
	  right away that DTS offset won't be needed and then this is all
	  bypassed.
	  If incoming frames don't have PTS set, we don't set a DTS offset at all.
	  This is because VideoToolbox, according to its docs, simply requires PTS
	  to be provided alongside the frame being submitted to the encoder. From
	  my testing, when PTS is invalid, VT will just not set DTS at all on the
	  output buffers, so we don't need the offset.
	  1st PTS minus 2nd PTS should always give us enough offset while being
	  more precise than e.g. using the DBP size instead. Similar logic is
	  already used in other encoders such as vah26*enc or svthevcenc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10873>

2026-02-20 16:05:14 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix wrong DPB size check in the output loop
	  The condition was always slightly wrong, but rather harmless. However
	  after my 'fix' in 30b213a86fd5ed8f654572bd35dff31af5a36334 it became
	  possible that with dpb_size=0 we end up busy looping because obviously
	  the queue length could not be <0, so the loop would never sleep...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10863>

2026-02-19 16:47:12 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  vtenc: Make sure draining actually drains all frames, port fixes from vtdec, unify naming
	  This commit mostly ports existing fixes from vtdec to vtenc. Also makes
	  them use the same naming to follow/compare the logic easier.
	  vtenc was missing the is_draining flag that we already have in vtdec.
	  It's mostly useful to make sure the output loop outputs all the frames
	  from the queue before it pauses when draining. Without it, it's possible
	  for some frames to end up being flushed instead of drained.
	  Additionally, if we're draining or flushing, the output callback will
	  now always push to the output queue no matter if it goes over the size
	  limit. This is already present in vtdec and reduces the risk of the VT
	  thread getting stuck when the output loop stops and won't actively
	  consume buffers.
	  I also renamed a few functions to make them match vtdec and make more
	  sense.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10860>

2026-02-19 16:30:07 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Make sure VT thread won't get stuck after a downstream error
	  Without this, if output loop stops because of an error we might end up
	  stuck because the VT thread can't push out the remaning frames.
	  This is already present in vtenc and is also needed here in vtdec.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10860>

2026-02-19 16:27:45 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix return value in flush()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10860>

2026-02-20 14:19:42 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: set dims_order on GstTensor
	  - set dims_order on GstTensor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10862>

2026-02-20 14:18:03 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoders: fix wrong dims_order check
	  - Use correct DIM_ORDER on GstTensor check for YOLO tensor decoders
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10862>

2026-02-13 13:07:15 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvavp8enc.c:
	  vavp8enc: set color format chroma
	  With the refactor of the encoder helper open methods, a hidden bug in vp8
	  encoder appeared, because the rt_format was never assigned, relying on a default
	  value that were removed.
	  This patch sets the format's chroma before opening the encoder helper object.
	  Fixes: #4906
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10806>

2026-02-12 19:24:41 -0500  Monty C <montyc1999@gmail.com>

	* sys/decklink/meson.build:
	  meson: Explicitly use cpp_std=c++11 for decklink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10804>

2026-02-17 17:01:48 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/libs/codecparsers/sitemap.txt:
	  doc: codecparsers: Switch to gi-index
	  The since marker comment are not working when using the c-index.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:09:09 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/gstav1bitwriter.c:
	* gst-libs/gst/codecparsers/gstav1parser.c:
	* gst-libs/gst/codecparsers/gsth264bitwriter.c:
	* gst-libs/gst/codecparsers/gsth264parser.c:
	* gst-libs/gst/codecparsers/gsth264parser.h:
	* gst-libs/gst/codecparsers/gsth265bitwriter.c:
	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	* gst-libs/gst/codecparsers/gstjpeg2000sampling.h:
	* gst-libs/gst/codecparsers/gstjpegbitwriter.c:
	* gst-libs/gst/codecparsers/gstjpegparser.c:
	* gst-libs/gst/codecparsers/gstmpegvideometa.c:
	* gst-libs/gst/codecparsers/gstmpegvideoparser.c:
	* gst-libs/gst/codecparsers/gstvc1parser.c:
	* gst-libs/gst/codecparsers/gstvc1parser.h:
	* gst-libs/gst/codecparsers/gstvp9bitwriter.c:
	* gst-libs/gst/codecparsers/gstvp9parser.c:
	* gst-libs/gst/codecparsers/gstvp9parser.h:
	  codecparsers: Fix annotation warnings reported at GIR constructions
	  This fixes all the minor warning emited buy the GIR generator.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:06:18 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/gsth265parser.h:
	* gst-libs/gst/codecparsers/gstvc1parser.c:
	* gst-libs/gst/codecparsers/gstvc1parser.h:
	* tests/check/libs/h265parser.c:
	  codecparsers: h265/vc1: Add missing namespace to some defines
	  This is effectively an API break, but I think its fair break considering the
	  risk of clash.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:04:37 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/meson.build:
	  build: codecs: Add gir dependency to the new GstCodecParsers gir
	  This fixes warning when structures from the parsers are exposed through the
	  codecs library API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 15:01:07 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	* gst-libs/gst/codecs/gsth265decoder.h:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  codec: h265decoder: Fix annotation and constify return value
	  gst_h265_decoder_get_sps_ext() return a bare pointer inside an array own by the
	  base class. Fix the annotation and constify the return value. Fix its single
	  usage in v4l2 codecs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:32:14 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/meson.build:
	* gst-libs/gst/codecparsers/meson.build:
	  build: codecparsers: Create a GIR file needed for since marking
	  Without a GIR file, despite the absence of GObject in this library, the
	  documentation script cannot resolved the since marker. Forcing hacks to ignore
	  newly introduce symbols. This also prevented a lot of annotation error
	  from being reported.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:29:41 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/meson.build:
	  build: codecparsers: Install some newly introduce API headers
	  This notably install the bitwriter headers included in the API but with their
	  headers not being installed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:28:23 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/meson.build:
	  build: codecs: Small style improvement
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-17 13:26:59 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/meson.build:
	  build: codecs: Add AV1 decoder to the GIR includes
	  Add missing AV1 decoder header to the GIR include flags. Since there
	  is no central header for this library, we need to pass every codec
	  headers to the GIR so all the symbols are resolved.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-18 19:49:25 -0500  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  v4l2codecs: Set long and short term RPS controls
	  Some hardware need that information to decode HEVC frames (e.g.:
	  Rockchip rk3588 SoC).
	  Those controls were added in linux 6.20
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-01-26 11:56:44 -0500  Detlev Casanova <detlev.casanova@collabora.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	* gst-libs/gst/codecs/gsth265decoder.h:
	  codecs: h265dec: Parse extended SPS information
	  This extra information allow notably parsing of the
	  slices headers inside the accelerator.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-01-26 11:53:02 -0500  Detlev Casanova <detlev.casanova@collabora.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	  h265parser: Store raw short/long term RPS sets
	  In order to support the new V4L2 HEVC stateless controls the raw values
	  from the long and short term RPS sets need to be kept.
	  The raw values are used in those controls so that they are kept
	  compatible with the Vulkan API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2025-06-27 11:24:04 -0400  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/linux/v4l2-controls.h:
	* sys/v4l2codecs/linux/videodev2.h:
	  v4l2codecs: Add short and long term controls in linux headers
	  Add the new V4L2_CID_STATELESS_HEVC_EXT_SPS_ST_RPS and
	  V4L2_CID_STATELESS_HEVC_EXT_SPS_LT_RPS controls in the linux kernel header.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10851>

2026-02-12 16:04:04 +0100  Hyunjun Ko <zzoon@igalia.com>

	* ext/vulkan/vkav1dec.c:
	  vkav1dec: fix to set SavedOrderHints properly
	  This fixes to play AV1 correctly on hardwares that require
	  SavedOrderHints, eg. ANV.
	  Otherwise the params is going to be reset to 0 during initialization.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10846>

2026-02-19 17:22:59 +0900  Seungha Yang <seungha@centricular.com>

	* gst/closedcaption/gstccconverter.c:
	  ccconverter: Reset counters on flush-stop
	  ... instead of flush-start. flush-start event can happen
	  at arbitrary points while the element is processing data
	  in streaming thread, which may cause races. Reset counters
	  on flush-stop to ensure that the reset happens after
	  the streaming thread no longer processing data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10845>

2026-02-19 15:43:13 +0900  Seungha Yang <seungha@centricular.com>

	* gst/closedcaption/gsth264ccextractor.c:
	* gst/closedcaption/gsth265ccextractor.c:
	  h264,h265ccextractor: Fix framerate in initial caps
	  Update framerate in set_format() as well so that
	  the input framerate is copied to the initial output caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10841>

2026-02-09 12:33:41 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.h:
	* sys/applemedia/avfassetsrc.m:
	* sys/applemedia/avfdeviceprovider.h:
	* sys/applemedia/avfdeviceprovider.m:
	* sys/applemedia/avfvideosrc.h:
	* sys/applemedia/avfvideosrc.m:
	* sys/applemedia/avsamplevideosink.h:
	* sys/applemedia/avsamplevideosink.m:
	* sys/applemedia/helpers.h:
	* sys/applemedia/helpers.m:
	* sys/applemedia/iosassetsrc.h:
	* sys/applemedia/iosassetsrc.m:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  applemedia: elements can now be individually registered with gst-full
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10828>

2026-02-17 17:41:41 +0900  Seungha Yang <seungha@centricular.com>

	* sys/asio/gstasioringbuffer.cpp:
	  asiosink: Fill silence when paused
	  Due to the ASIO API design, it's not possible to pause a specific
	  ASIO device channel. Fill silence instead to avoid garbage noise
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4909
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10830>

2026-02-12 03:12:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix GstVideoCodecState leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-11 19:26:07 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/ladspa/gstladspa.c:
	* gst/frei0r/gstfrei0r.c:
	  frie0r, ladspa: Stop using G_MODULE_SUFFIX
	  And define GST_EXTRA_MODULE_SUFFIX inside the plugin sources, since it
	  is no longer set in config.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-11 19:25:09 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/lv2/gstlv2.c:
	* meson.build:
	* sys/shm/shmpipe.c:
	  macos: Stop using HAVE_OSX, use built-in macros instead
	  The host_system == 'darwin' check is incorrect for this anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-02 21:37:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Check for AV1 and VP9 support once
	  And don't warn if they aren't supported. Prevents spammy warnings when
	  playing an fmp4 stream which reconfigures every segment.
	  Ensure that we check it dynamically during caps negotiation, so that
	  we do not enable this supplemental support if not necessary, since it
	  is process-wide and (likely) reserves resources.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 16:58:03 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	  applemedia: Disable avfvideosrc and avfdeviceprovider on tvOS/watchOS
	  AVCaptureDevice isn't available on watchOS, and it's only available on
	  tvOS 17.0+. It's not clear how to make an entire element dynamically
	  available via __builtin_available() so just disable it for now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 15:53:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Fix build with tvOS
	  https://developer.apple.com/documentation/videotoolbox/kvtcompressionpropertykey_constantbitrate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:41:03 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/avfvideosrc.m:
	  avfvideosrc: Add support for newer iOS 17+ APIs
	  The orientation property is deprecated, and has been replaced with
	  videoRotationAngle. Coincidentally, this is also the only way to do
	  rotation on tvOS.
	  Left TODOs for some of the features that are also available on newer
	  macOS now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:04:41 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Software decoders are now more widely available
	  When software decoders are available, we now register a separate
	  vtdec_hw, similar to macOS.
	  http://developer.apple.com/documentation/videotoolbox/kvtvideodecoderspecification_enablehardwareacceleratedvideodecoder
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:00:07 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: VTRegisterSupplementalVideoDecoderIfAvailable is widely available
	  It's also available on tvOS and visionOS.
	  https://developer.apple.com/documentation/videotoolbox/vtregistersupplementalvideodecoderifavailable(_:)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 14:04:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/meson.build:
	* sys/applemedia/plugin.m:
	* sys/applemedia/videotexturecache-gl.h:
	* sys/applemedia/videotexturecache-gl.m:
	* sys/applemedia/vtdec.c:
	  applemedia: Enable EAGL support on tvOS too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 13:58:16 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/avfdeviceprovider.m:
	  avfdeviceprovider: AVCaptureDevice manufacturer is more widely available
	  https://developer.apple.com/documentation/avfoundation/avcapturedevice/manufacturer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 13:45:15 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* sys/applemedia/avfdeviceprovider.m:
	* sys/applemedia/avfvideosrc.m:
	* sys/applemedia/corevideobuffer.c:
	* sys/applemedia/plugin.m:
	* sys/applemedia/videotexturecache-gl.h:
	* sys/applemedia/videotexturecache-gl.m:
	* sys/applemedia/videotexturecache-vulkan.mm:
	* sys/applemedia/videotexturecache.m:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtenc.c:
	  applemedia: Stop using HAVE_IOS, use TARGET_OS_* macros instead
	  HAVE_IOS is being used incorrectly, because iOS vs macOS are not the
	  only two choices.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 11:45:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/sctp/usrsctp/meson.build:
	* gst-libs/gst/vulkan/meson.build:
	* meson.build:
	* sys/applemedia/meson.build:
	* sys/decklink/meson.build:
	* sys/shm/meson.build:
	* tests/examples/avsamplesink/meson.build:
	  meson: Deprecate `system = 'ios'` in cross files, use subsystem
	  Since we require Meson 1.4.0, we can now use subsystem names (added in
	  1.2.0).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-01-28 11:40:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/ladspa/gstladspa.c:
	  ladspa: Fix macOS detection
	  The macOS ifdefs were also incorrectly enabled for iOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10807>

2026-02-16 17:17:07 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Avoid busy looping when queue length is smaller than DPB size
	  The check for whether the output loop should sleep was wrong. If we had
	  something in the queue but not enough to push frames out (depending on
	  the DPB size), we'd busy loop until that changed. If the input data
	  happened to stop at that point, vtdec would busy loop until EOS arrives,
	  which doesn't always happen instantly. This just makes sure we're
	  checking for the same thing in both places, eliminating this weirdness.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10827>

2023-04-02 16:53:45 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	* scripts/dist-common-files.py:
	  modules: dist common files from monorepo root
	  Less noise when making releases, and just need to maintain one copy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 17:45:19 +0000  Tim-Philipp Müller <tim@centricular.com>

	* README.md:
	  modules: remove subproject README.md from git
	  Will be added to the tarballs based on the monorepo README on dist.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 17:20:59 +0000  Tim-Philipp Müller <tim@centricular.com>

	* RELEASE:
	  modules: remove RELEASE from git, will be generated from template on dist
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-15 15:02:07 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	  modules: Remove NEWS from git which is generated from full release notes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10822>

2026-02-16 10:51:53 +0800  Xi Ruoyao <xry111@xry111.site>

	* ext/zxing/gstzxing.cpp:
	  zxing: Fix version check for zxing-cpp 3.0.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10813>

2026-02-12 14:40:40 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvabasetransform.c:
	  vabasetransform: copy buffer's metadata at copy when import buffer
	  When downstream doesn't support video meta, the buffer needs to be imported to a
	  VA surface by copying the frame data. But buffer's metadata weren't copied. This
	  patch fixes it by calling base class copy_metadata() virtual method.
	  Original-patch-by: carol-lim <carol.lim@intel.com>
	  Fixes: #4866
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10810>

2026-02-11 09:59:53 +0000  axxel <awagger@gmail.com>

	* ext/zxing/gstzxing.cpp:
	  zxing: Minimal support for compiling with zxing-cpp 3.x
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10799>

2026-02-12 02:25:38 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix CM memory leak due to incorrect unref
	  The GstMemory was being leaked for each frame because
	  gst_memory_unmap() was setting info->memory to NULL, making the unref
	  a no-op. We need to store a separate ref to the memory.
	  This broke in 9baf4701f04ee238db6282f4f348a43ca5a299a9, where
	  info->memory now starts to get cleared on unmap.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10795>

2026-02-10 22:12:56 +0100  Sjoerd Simons <sjoerd@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  waylandsink: make gst_wl_window_commit_buffer handle NULL buffers
	  gst_wl_window_commit_buffer is meant to clear the various surfaces when passed
	  a NULL buffer. In 130e093d5c ("wayland: window: Add the ability to offload
	  cropping"), this case was broken. Correct that.
	  Fixes: 130e093d5c ("wayland: window: Add the ability to offload cropping")
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10793>

2026-02-06 13:09:02 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vulkan: load video function pointers conditionally based on codec operation
	  Split GST_VULKAN_DEVICE_VIDEO_FN_LIST into COMMON, DECODE, and ENCODE
	  sub-lists so that gst_vulkan_video_get_vk_functions() only loads the
	  function pointers relevant to the codec operation being used.
	  Previously, both decoder and encoder would attempt to load all Vulkan
	  Video function pointers unconditionally, causing initialization to fail
	  on drivers that only support one direction (e.g. decode-only drivers
	  would fail to find vkCmdEncodeVideoKHR).
	  Now the decoder only requires CmdDecodeVideo while the encoder only
	  requires CmdEncodeVideo, GetEncodedVideoSessionParameters, and
	  GetPhysicalDeviceVideoEncodeQualityLevelProperties.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10773>

2026-02-04 16:32:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/vulkan/meson.build:
	* sys/applemedia/meson.build:
	  meson: Add a subproject for providing the LunarG MoltenVK SDK
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10752>

2026-02-04 16:38:21 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/gstajasinkcombiner.cpp:
	  ajasinkcombiner: Only forward the segment events from the video sinkpad
	  It's the video buffers with their timestamps that are forwarded, not the audio
	  ones, and if both segments are different then this won't work.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10748>

2026-01-23 12:13:09 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* ext/openh264/gstopenh264enc.cpp:
	  openh264enc: remove broken drain and simplify handle_frame
	  OpenH264 encoder does not support B-frames for any profile, or other
	  advanced encoding
	  feature which could require frame buffering, so there
	  are no potential frames to drain. The drain code was also broken as
	  EncodeFrame() rejects NULL input with cmInitParaError.
	  Remove the non-functional drain loop and clean up handle_frame() by
	  removing dead code paths that were only needed for the broken drain.
	  Add defensive NULL frame check with error logging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10739>

2026-01-22 14:39:46 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* ext/openh264/gstopenh264enc.cpp:
	* ext/openh264/gstopenh264enc.h:
	  openh264enc: skip drain for baseline profile
	  Baseline profile doesn't use B-frames, so there are no buffered frames
	  to drain at EOS. Attempting to drain by calling EncodeFrame with NULL
	  input causes openh264 to return cmInitParaError and log a spurious
	  error message.
	  Store the profile when initializing the encoder and check it in finish()
	  to skip the unnecessary drain call for baseline profile.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10739>

2025-12-30 18:22:47 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/mpegtsmux/tsmux/tsmux.c:
	* gst/mpegtsmux/tsmux/tsmuxcommon.h:
	  tsmux: reduce noise for DEBUG log level
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10736>

2026-01-06 21:35:50 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/frei0r/gstfrei0rsrc.c:
	  frei0r-src: adapt klass "Src" to "Source"
	  use recommended "Source" instead of "Src"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-06 21:28:10 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/rtp/gstrtpsrc.c:
	  rtpsrc: adapt klass "Src" to "Source"
	  use recommended "Source" instead of "Src"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-06 21:25:37 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/avtp/gstavtpsrc.c:
	  avtpsrc: adapt klass "Src" to "Source"
	  use recommended "Source" instead of "Src"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-06 21:21:08 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/unixfd/gstunixfdsrc.c:
	  unixfdsrc: adapt klass "Src" to "Source"
	  use recommended "Source" instead of "Src"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-06 21:15:08 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/debugutils/gstvideocodectestsink.c:
	  videocodectestsink: fix typo in klass
	  use "Video" instead of "video"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-06 09:59:21 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst: also adapt author names in the gst_plugins_cache.json files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:25:58 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/webp/gstwebpdec.c:
	* ext/webrtcdsp/gstwebrtcechoprobe.cpp:
	* gst/videoparsers/gstmpegvideoparse.c:
	  gst-plugins: fix author name: correct incomplete or wrong emails
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:02:19 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* gst/debugutils/gstvideocodectestsink.c:
	* gst/rist/gstristrtpdeext.c:
	* gst/rist/gstristrtpext.c:
	* gst/rist/gstristsink.c:
	* gst/rist/gstristsrc.c:
	* gst/rist/gstroundrobin.c:
	* sys/ipcpipeline/gstipcslavepipeline.c:
	  gst: fix author name: add missing closing angle bracket
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 18:51:07 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/dtls/gstdtlsdec.c:
	* ext/dtls/gstdtlsenc.c:
	* ext/dtls/gstdtlssrtpdec.c:
	* ext/dtls/gstdtlssrtpdemux.c:
	* ext/dtls/gstdtlssrtpenc.c:
	  dtls: fix author name: add missing angle brackets
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:59:13 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/fieldanalysis/gstfieldanalysis.c:
	  fieldanalysis: adapt klass to recommendation
	  - use recommended "Analyzer" instead of "Analysis"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 19:54:15 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/videofilters/gstzebrastripe.c:
	  zebrastripe: adapt klass to recommendation
	  - use "Video" as the element operates on base type video
	  - use recommendated "Analyzer" instead of "Analysis"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 21:21:41 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst-plugins-bad: remove trailing spaces: update gst_plugins_cache.json
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 14:31:05 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/smoothstreaming/gstsmoothstreaming-plugin.c:
	  smoothstreaming: remove trailing space from desc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 14:24:47 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* ext/openni2/gstopenni2src.cpp:
	  openni2src: remove trailing space from desc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-04 14:15:07 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* gst/siren/gstsirendec.c:
	* gst/siren/gstsirenenc.c:
	  siren: remove trailing space from klass
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10729>

2026-01-30 16:55:11 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/closedcaption/gstcea608mux.c:
	  cea608mux: fix overflow when calculating output PTS
	  In the presence of a 60000 / 1001 framerate, the previous method of calculation
	  would overflow after 10 hours.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10726>

2026-01-11 20:44:46 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: add support for rotated bounding boxes
	  - Use angle from GstAnalyticsODMtd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10671>

2026-01-21 16:24:50 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: Fix CLAMP operation of maxFALL and maxCLL
	  The CLAMP operation was simply called the wrong way, which resulted in returning
	  the original value without clipping. This fixes !9353.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10685>

2026-01-30 16:09:30 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix race condition when negotiating during playback
	  Follow up to 376eee3bb1250cdf0f4aeab9f362c01f291dfd55 - this change
	  should have the same intended effect but removes a rare race condition.
	  After the above commit it became possible for the output loop to be
	  active in two threads at once and attempt to push frames from both,
	  possibly out of order. That's because both the thread that calls
	  set_format() and the normal output loop thread would eventually end up
	  calling drain_decoder(). When that happened, the srcpad task loop would
	  quit correctly, but the manual call to the output loop function in
	  drain_decoder() could get stuck due to the drain/flush flags being reset
	  from the other thread.
	  This change makes sure we never call the output loop from anywhere else
	  than the srcpad task. Instead of that, the output loop will not pause
	  while drain/flush is active as long as there are any frames in the
	  output queue. This makes sure that in drain_decoder(), when we request
	  the loop to pause, all frames will be out by the time that call returns.
	  At the same time, a pause requested from change_state() won't be
	  affected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10715>

2026-01-30 16:08:41 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Add more debug logging
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10715>

2026-01-30 16:26:36 +0100  François Laignel <francois@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: fix reverse playback
	  Problem found rendering an F32 stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10712>

2026-01-29 16:49:26 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Don't re-create session if only the framerate changed
	  Playing back some fMP4 files can trigger caps events at fragment
	  boundaries where only the framerate changes. We shouldn't re-create the
	  decoder session in this case, because the new fragment may still depend
	  on reference frames from the previous fragment. Re-creating the session
	  makes VT unable to decode a part of the new fragment, resulting in
	  missing frames for a while.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10702>

2026-01-23 13:13:08 +0100  Rinat Zeh <rinat.zeh@i-rz.de>

	* ext/mpeghdec/gstmpeghdec.c:
	  mpeghdec: memory leak fix in MPEG-H Audio decoder plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10687>

2026-01-23 20:06:11 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	* gst/audiobuffersplit/gstaudiobuffersplit.h:
	  audiobuffersplit: Implement negative rates correctly
	  Change segments with negative rates to segments with positive rate and negated
	  applied rate, and accordingly adjust timestamps and reverse all samples in every
	  buffer before passing to the adapter.
	  This makes sure that chunking of output buffers is still done correctly while
	  keeping all samples in order. Previously each buffer would be output with
	  samples in positive order, but there would be discontinuities with jumps
	  backward at every input buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-23 15:40:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Convert gap events to silence buffers
	  Otherwise they would potentially pass ahead of previous buffers that are still
	  in the adapter, or otherwise cause inconsistent output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-20 13:12:28 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Handle SEGMENT_DONE the same way as EOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-20 13:13:48 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Send any pending segment before EOS/SEGMENT_DONE
	  This is still not entirely correct but at least makes sure that a pending segment is sent downstream at all.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6019
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:19:08 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Log if an input buffer has the discont flag set or not
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:18:40 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Don't use floating point divisions unnecessarily
	  Also rename variables for clarity.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:17:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Use the output segment for output related calculations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-16 18:17:00 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/audiobuffersplit/gstaudiobuffersplit.c:
	  audiobuffersplit: Correctly calculate adapter start/end running time for negative rates
	  Running time still increases normally.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10670>

2026-01-19 03:03:11 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/vulkan/ios/gstvkwindow_ios.m:
	  vulkan/ios: Fix scaling and resizing with UIView
	  * layoutSubviews was misspelled, so it was never being called
	  * Vulkan wants the size in pixels, and the CGRect is in points, so it
	  must be scaled
	  * Update drawable size when the window object changes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10669>

2025-12-04 10:55:18 -0800  Deepa Guthyappa Madivalara <deepa.madivalara@oss.qualcomm.com>

	* sys/v4l2codecs/linux/videodev2.h:
	  v4l2: Add support for AV1 V4l2 decoder
	  Introduce support for new pixelformat V4L2_PIX_FMT_AV1
	  mapping to AV01.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10664>

2026-01-28 13:31:14 +0000  freedesktop <andreas.campagna@ac-cloud.eu>

	* gst-libs/gst/play/gstplay.c:
	  gstplay: fix reference counting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10660>

2026-01-28 11:51:07 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Fix uninitialized variable compiler warning
	  And also remove some dead code: self->class_quark is always set at this point.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4871
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10656>

2026-01-28 11:50:10 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/va/gstvadisplay.c:
	  vadisplay: Fix a couple of new const-ness warnings around strstr() usage
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4871
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10656>

2026-01-28 10:22:21 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Check the presence of encoding-name fields in answer caps
	  The caps returned by `gst_sdp_media_get_caps_from_media()` can potentially be
	  incomplete if the input SDP has been altered by a third party, so in those cases
	  skip to the next payload when processing answer caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10662>

2026-01-27 17:36:15 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Implement drain() to allow reverse playback
	  Outputs what it can output and then flushes the leftovers in case there was an error when
	  pushing frames downstream. Matches v4l2dec's behaviour.
	  Without this `gst_video_decoder_drain_out()` would do nothing and reverse playback
	  would just get stuck.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-27 17:22:47 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Make sure to reset last flow return when flushing
	  Otherwise if we hit e.g. an EOS before a flush, it could stick around
	  and cause any following frames to be ignored in handle_frame().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-27 16:40:29 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix a very slight race in handle_frame() when flushing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-21 11:12:52 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Always reset flushing flag in flush()
	  Previous version assumed that flush-stop would always be received after a flush() call, but the base video decoder class
	  will just simply use that function in reverse playback without sending any events, causing the flag to be stuck.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10654>

2026-01-22 16:32:27 +0900  Seungha Yang <seungha@centricular.com>

	* gst/codectimestamper/gstcodectimestamper.c:
	  codectimestamper: Fix latency query handling
	  Add missing max latency value update
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10653>

2026-01-20 14:25:52 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: always send a segment before sending eos or segment-done
	  When a seek was requested past the end of the stream an eos or segment-done
	  event was sent without the segment event.
	  The segment event is sent before the first buffer is pushed and it takes care
	  of adjusting the segment with regard to the max_temporal_offset
	  (see in `gst_mxf_demux_handle_generic_container_essence_element ()`). If no
	  buffer can be sent, the segment is not sent.
	  This commit makes sure a segment is sent before pushing any eos or
	  segment-done event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10650>

2025-12-11 15:51:03 +0100  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Simplify initial packet handling
	  * If there's no payload, we don't care about it
	  * If we have a non-PUSI packet and we are empty, return early
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10643>

2025-11-14 16:04:04 +0100  Edward Hervey <edward@centricular.com>

	  tsdemux: Fix Continuity Counter handling
	  If a stream has a continuity counter issue we need to immediately:
	  * Drop all pending data, **NOT** flush it downstream (it's incomplete)
	  * Not use that packet, even if it's a PUSI.
	  This avoids two issues with PES:
	  * Processing: a PES Header .. which might come from a misordered packet,
	  introducing bogus timing observations.
	  * Sending: half-complete PES payload downstream when discontinuity happens,
	  which can confuse several bytestream-based codecs/parsers (which rely on a
	  bytecode sequence to detect boundaries, and not a specific payload size).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10643>

2026-01-13 16:01:28 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: fix gst_mxf_demux_pad_get_stream_time ()
	  `gst_mxf_demux_pad_get_stream_time ()` was only considering the `material_track`
	  edit rate while other time related functions such as
	  `gst_mxf_demux_pad_get_current_time ()` use the `material_track` edit rate when
	  summing the duration of all the previous essence track, then use current
	  essence track edit rate for the essence track position.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10633>

2025-11-14 15:15:53 +0100  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/mpegtspacketizer.c:
	  mpegtspacketizer: Handle clock change/resets without skew correction
	  While we don't want to calculate and apply a skew correction, we still need to
	  detect whether upstream clock changed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10635>

2026-01-09 17:05:35 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/gstajasinkcombiner.cpp:
	  ajasink: Only allow 6 / 8 / 16 audio channels
	  Any other value is rejected by the SDK and driver, see implementation of
	  `CNTV2Card::SetNumberAudioChannels()`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10624>

2026-01-14 14:06:04 +0100  Xabier Rodriguez Calvar <calvaris@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/transportstream.c:
	* gst-libs/gst/webrtc/nice/nicestream.c:
	  webrtc: sink floating refs of ICE transports
	  We should be returning full refs instead of floating refs when get them queried
	  from properties and we were not because references were not sunk after creation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10627>

2026-01-05 19:15:10 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudamemorycopy.c:
	  cudaupload, cudadownload: Fix CUDA/GL interop copy path
	  Avoid requiring an element-owned GL context when copying between
	  CUDA and GL memory, since the GL context is already owned by
	  the GLMemory object
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10620>

2026-01-27 18:25:19 +0100  Piotr Brzeziński <piotr@centricular.com>

	* ext/dash/meson.build:
	* ext/smoothstreaming/meson.build:
	* ext/ttml/meson.build:
	  meson: Fix libxml2 not building due to wrong option type
	  'python' was moved from a boolean to a feature a few months ago and
	  4f4260dbe3489699aba0a724a3d55020666a0d6a pulled that in on our side.
	  Notably, this was causing adaptivedemux2 to not build on my system.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10618>

2026-01-27 17:10:54 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.28.0

=== release 1.28.0 ===

2026-01-27 17:02:33 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* README.md:
	* RELEASE:
	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.28.0

2026-01-27 15:14:41 +0000  Tim-Philipp Müller <tim@centricular.com>

	* ext/lcevcdecoder/gstlcevch264decodebin.c:
	* ext/lcevcdecoder/gstlcevch265decodebin.c:
	* ext/lcevcdecoder/gstlcevch266decodebin.c:
	  lcevch26xdecodebin: don't autoplug for now until issues with non-LCEVC streams are fixed
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4870
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10612>

2026-01-25 17:18:08 +0000  Tim-Philipp Müller <tim@centricular.com>

	* po/LINGUAS:
	* po/ar.po:
	* po/hr.po:
	* po/ro.po:
	  gst-plugins-bad: update translations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10598>

2026-01-19 18:48:39 +0100  Rafael Caricio <rcaricio@netflix.com>

	* sys/applemedia/vtdec.c:
	  vtdec: check AV1 support during caps negotiation
	  Override getcaps vfunc to filter out video/x-av1 from advertised caps
	  when hardware decoding is not supported, rather than failing later in
	  set_format. This allows proper fallback to other decoders during
	  autoplugging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10562>

2026-01-20 20:27:40 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/rtmp/gstrtmp.c:
	* ext/rtmp/gstrtmpsink.c:
	* ext/rtmp/gstrtmpsrc.c:
	  rtmp: Emit a deprecation warning in init
	  After 1.28.0 is released, we will remove this plugin and have the
	  rtmp2 plugin register these features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10574>

2026-01-18 17:09:10 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	* meson.options:
	  meson: Don't disable orc support when orcc is not available
	  This was breaking usage of orc when cross-compiling with no orcc
	  available in PATH. We can use the orc-dist.{c,h} files in that case as
	  long as the orc library itself is available. Using the subproject, for
	  example.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10553>

2025-12-20 19:56:37 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamcutils.c:
	* sys/androidmedia/gstamcutils.h:
	* sys/androidmedia/gstamcvideoenc.c:
	* sys/androidmedia/gstjniutils.c:
	* sys/androidmedia/gstjniutils.h:
	* sys/androidmedia/jni/gstamc-codeclist-jni.c:
	* sys/androidmedia/meson.build:
	  amc: Fix init on Android API < 29
	  Not finding isHardwareAccelerated() is an error only for API >= 29.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4693
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10426>

2025-12-20 19:55:45 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstjniutils.c:
	  amc: Fix whitespace around gst_amc_jni_call_*_method macros
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10426>

2026-01-14 19:07:40 -0600  Christopher Degawa <ccom@randomderp.com>

	* ext/svtav1/gstsvtav1enc.c:
	  svtav1enc: handle deprecations from SVT-AV1 4.0.0
	  `enable_adaptive_quantization` was replaced by `aq_mode` since it's not
	  a boolean. `target_socket` was removed entirely. If someone wants to
	  pin the encoder to a specific socket, they will have to use external
	  means like numactl etc.
	  Signed-off-by: Christopher Degawa <ccom@randomderp.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10543>

2026-01-12 16:09:38 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/win32ipc/gstwin32ipc.cpp:
	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	* sys/win32ipc/gstwin32ipcbasesrc.cpp:
	* sys/win32ipc/gstwin32ipcsink.cpp:
	* sys/win32ipc/gstwin32ipcsrc.cpp:
	  win32ipc: Update plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10529>

2026-01-12 16:07:54 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/d3d12/gstd3d12fisheyedewarp.cpp:
	* sys/d3d12/gstd3d12memorycopy.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	* sys/d3d12/gstd3d12remap.cpp:
	  d3d12: Update plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10529>

2026-01-12 15:23:24 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	  wasapi2: Update plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10529>

2026-01-12 07:34:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  va: encoder: don't fail at close if config isn't created
	  With the last refactor, the configuration of the encoder is lazy, so it's
	  possible to close the encoder without even opened it. But still return FALSE if
	  closing the encoder with no config ID, which generated spurious error logs.
	  This patch also resets the state of the encoder while closing.
	  Fixes: #4852
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10528>

2026-01-13 09:46:48 +0100  Sjoerd Simons <sjoerd@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: Reset memory_info after freeing
	  For clarity also reset memory_info to NULL after freeing it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10535>

2026-01-13 08:33:36 +0100  Sjoerd Simons <sjoerd@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Fix invalid free of output names
	  Ensure the output_names array has been allocated before trying to free
	  its elements. This situation happens when the model validation fails
	  before the output names are assigned; I ran into it due to an
	  incorrect model info file.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10535>

2026-01-10 21:27:30 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* tests/check/meson.build:
	  bad: fix indentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10527>

2026-01-10 15:29:50 +0100  Ruben Gonzalez <rgonzalez@fluendo.com>

	* gst/closedcaption/meson.build:
	* tests/check/meson.build:
	  closedcaption: map with meson options
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10527>

2026-01-07 14:06:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Check correct flags for deciding whether a track is enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-07 13:25:55 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Move subtitle enabled condition to the right place
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-06 18:29:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Don't access currently selected audio/video/subtitle stream ids without mutex
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-06 18:25:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Don't do the same stream selection multiple times
	  playbin3 doesn't respond with a streams-selected message in that case, and apart
	  from that it's also inefficient.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2026-01-06 14:20:30 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Ignore streams-selected messages for old selections
	  It might happen that we received a new stream-collection and sent a new
	  select-streams event in the meantime, and reacting to the old streams-selected
	  message can cause inconsistent states if the streams have changed.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9851
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10503>

2025-12-27 18:47:42 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: Change promise in gst_webrtc_ice_close() to `transfer none`
	  This is more in line with other API taking a promise and makes it easier for
	  calling code to keep a reference to the promise around.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4819
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10460>

2026-01-05 20:20:51 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.90

=== release 1.27.90 ===

2026-01-05 20:15:10 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.27.90

2026-01-05 18:08:00 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/codecs/gstvp8decoder.c:
	  vp8decoder: Fix incorrect variable in warning message
	  The warning message for unrecognized copy_buffer_to_golden was
	  incorrectly printing copy_buffer_to_alternate instead of
	  copy_buffer_to_golden. This was a copy-paste error that would
	  display the wrong field value when debugging invalid VP8 streams.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10494>

2026-01-04 21:58:36 +0100  Christian Gräfe <cgraefe83@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/qroverlay/gstdebugqroverlay.c:
	* ext/qroverlay/gstqroverlay.c:
	  qroverlay: use proper klass
	  klass was not really keywords but a description
	  use base type "Video"
	  and functional type "Overlay" (not defined yet in the docu, but also used by other elements)
	  also fix the long-name of debugqroverlay
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10493>

2025-12-30 18:53:26 -0500  Doug Nazar <nazard@nazar.ca>

	* ext/assrender/gstassrender.c:
	* ext/sndfile/gstsfsrc.c:
	* ext/ttml/gstttmlrender.c:
	* gst/dvdspu/gstdvdspu.c:
	* gst/segmentclip/gstsegmentclip.c:
	* tools/element-templates/sinkpad:
	  gst: Properly unref pad template caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10477>

2025-12-31 09:08:15 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/mpeg2enc/gstmpeg2enc.cc:
	  mpeg2enc: Fix indentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10476>

2025-12-30 17:53:22 -0500  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/audiovisualizer.c:
	* tests/check/elements/mpegtsmux.c:
	  tests: Fix several memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10476>

2025-12-30 17:51:50 -0500  Doug Nazar <nazard@nazar.ca>

	* ext/mpeg2enc/gstmpeg2enc.cc:
	  mpeg2enc: Fix several memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10476>

2025-12-26 15:38:07 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Fix integer overflow in buffer allocation
	  Use g_size_checked_mul() to safely calculate the buffer size
	  (width * height * channels * element_size) to prevent integer
	  overflow which could lead to undersized buffer allocation and
	  heap corruption.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10449>

2025-12-24 11:28:53 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	  analyticsmeta: Export debug category to the Mtd for better debug messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-24 11:18:25 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsmeta: Set debug category as default
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-24 11:08:10 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	  objectdetectionmtd: Reject transformations that aren't 90deg based or symetries
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-24 10:37:50 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	  segmentationmtd: Drop meta on rotations/flips
	  We don't have any code to do this kind of transformation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-23 16:20:16 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsrelationmeta: Skip Mtd that can't be transformed
	  Also do the relationship copying in the end.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10443>

2025-12-26 14:32:08 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst/geometrictransform/gstgeometrictransform.c:
	  geometrictransform: Fix integer overflow in map allocation
	  Use g_size_checked_mul() to safely calculate the map size
	  (width * height * 2 * sizeof(gdouble)) to prevent integer
	  overflow which could lead to undersized buffer allocation
	  and subsequent heap corruption when the map is populated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10448>

2025-12-26 10:26:38 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst/geometrictransform/gstkaleidoscope.c:
	  kaleidoscope: Fix potential division by zero in geometric transform
	  Avoid division by zero when cos(theta) is close to zero. When theta
	  approaches ±π/2 after the triangle function calculation, cos(theta)
	  becomes zero, which would cause undefined behavior. Check that
	  cos(theta) is sufficiently far from zero before performing the
	  division.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10438>

2025-12-22 21:56:05 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Check transport before setting state when closing
	  `webrtc_transceiver_get_dtls_transport()` can return NULL so that needs to be
	  checked by the caller.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10432>

2025-12-22 16:23:10 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	* gst/mpegtsmux/gstbasetsmuxjpegxs.h:
	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  gst: Remove various wrongly added includes
	  These were most likely added by clangd automatically.
	  Please use `-header-insertion=never` with clangd!
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-12-17 11:36:14 +0100  Johan Sternerup <johast@axis.com>

	* gst-libs/gst/webrtc/nice/meson.build:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtcnice: Depend on libnice 0.1.23
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-04-16 14:48:57 +0200  Johan Sternerup <johast@axis.com>

	* gst-libs/gst/webrtc/nice/meson.build:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtcnice: Close agent and do it with force
	  Call nice_agent_close_async() to make sure all outstanding resolve tasks have
	  finished, which means we avoid a potential leak of a GMainContext with
	  an associated file descriptor. We only do this if
	  NICE_AGENT_OPTION_CLOSE_FORCED is available and can be used, because
	  otherwise the closing procedure can take quite a long time while waiting
	  for turn server responses.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-04-28 13:44:12 +0200  Johan Sternerup <johast@axis.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtcnice: Wait for completion of proxy and mdns resolve tasks
	  This commit ensures all outstanding name resolving for mdns and proxy is
	  finished before the nice agent thread is shut down. This is important
	  because the DNS resolving is performed by GThreadedResolver, which uses
	  a GTask taking a strong reference to the agent main context in order to
	  be able finish the task and run the final callback within the agent main
	  context. Consequently, the main context cannot be disposed until the
	  GTask has finished. Leaking a GMainContext is particularly bad because
	  it involves leaking the file descriptor used for polling events.
	  GThreadedResolver takes a strong reference to the GTask. it hands this
	  reference over to an internal worker thread that ultimately calls libc's
	  `getaddrinfo()`. This function can hang for an undefined amount of time
	  depending on network or network driver conditions. This makes it
	  impossible to completely control the lifetime of our GTask/GMainContext,
	  but what we can do is to make sure that in case of a long hang or early
	  shutdown of the agent, the GTask has already finished so that when
	  `getaddrinfo()` returns the only work left to do is to drop the
	  reference to GTask (and possibly GMainContext).
	  GThreadedResolver already sets up two mechanisms for finishing the task
	  earlier than `getaddrinfo()`, one timeout source and a cancellation
	  source. The cancellation source was previously created by
	  GThreadedResolver, but we're now passing it ourselves so that we can
	  explicitly invoke cancellation. There is one quirk though. Both the
	  timeout source and the cancellation source are associated with the gio
	  global worker context. Thus, cancellation will happen in the thread
	  driving the worker context and there it will conclude that the final
	  agent callback must be invoked within the agent main context. This
	  detour means we cannot simply cancel and expect the GTask to be
	  finalized without also explicitly waiting for the finalization.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8519>

2025-12-18 18:23:56 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	* gst-libs/gst/codecs/gsth266decoder.c:
	  codecs: h265/h266dec: Do not try to output failed frames
	  "end_picture()" virtual function may fail due to various reason, one of them
	  being that a flush is happening. Since the picture failed, the subclass may have
	  flushed any picture data from it, and will likely throw an error or crash when
	  trying to output.
	  These two decoder simply didn't care unlike all the other. Use similar technique
	  as used in h264dec, which is to mark the frame as not for output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:38:55 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: av1/vp9: Properly propagate flow ret such as FLUSHING
	  Some of the decoder would simply turn any flow return into an ERROR, which
	  can be noisy when the original flow return is FLUSHING due to a normal flush
	  condition.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:37:38 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	  v4l2codecs: av1/vp9: Fix request leak on error
	  The request was not being freed property if there was an error. Typically a
	  flush / seek operation could cause this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:35:07 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	  v4l2codecs: Assert and return on missing request
	  The base class isn't supposed to output a picture that has never been
	  requested or for which the request has been removed by the flush operation.
	  Make sure to crash this kind of programming error with an assert, while
	  protecting against crash in this case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10421>

2025-12-18 15:46:24 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/hls/gsthlsdemux.c:
	  hlsdemux: Mark discontinuity on seek
	  When seeking across an EXT-X-DISCONTINUITY tag, set the internal
	  stream discont flag. This ensures the next buffer is correctly marked
	  with GST_BUFFER_FLAG_DISCONT, signaling a timeline reset to
	  downstream elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10402>

2025-12-17 13:17:52 -0600  Brad Reitmeyer <brad.reitmeyer@resi.io>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: Fix frame duration to be based on the decklink clock
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10401>

2025-12-21 22:12:43 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: remove invalid properties
	  - input-tensor-offset and input-tensor-scale have been removed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10427>

2025-12-19 15:40:26 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/rsvg/meson.build:
	  meson: Solve some cyclic dependencies caused by test-only deps
	  gstreamer => gobject-introspection => cairo => fontconfig => freetype2 => harfbuzz => cairo
	  gst-plugins-base => libdrm => cairo => fontconfig => freetype2 => harfbuzz => cairo
	  gst-plugins-good => cairo => librsvg => cairo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10422>

2025-12-19 11:16:27 +0100  Adrien Plazas <aplazas@gnome.org>

	* gst-libs/gst/play/gstplay.c:
	* gst-libs/gst/play/gstplay.h:
	  gstplay: Add gapless looping
	  This adds the GstPlayLoop enumeration and the loop configuration
	  accessor methods. It allows gapless looping over the current track.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10418>

2025-12-14 11:59:43 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: update gst-plugins-bad doc cache
	  - doc cache updated
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10380>

2025-12-13 11:37:04 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstssdtensordec.c:
	* gst/tensordecoders/gstssdtensordec.h:
	* gst/tensordecoders/gsttensordecoders.c:
	  tensordecoder: ssdtensordec backward compat with oldname
	  - Also register old name "ssdobjectdetector" for backward compatibility.
	  - warn about Deprecated in instance_init
	  - better annotation related to deprecated
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10380>

2025-12-18 18:07:17 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/librfb/gstrfbsrc.h:
	  video: Include gstvideodmabufpool.h from video.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10411>

2025-12-16 16:41:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	* gst/jpegformat/gstjpegparse.h:
	  jpegparse: enable MPF support to JPEG parser
	  Parse Multi Picture Format APP2 segments to handle multiple images in a
	  single JPEG stream. Ignore non-primary images and adjust frame logic for
	  correct framing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

2025-12-04 18:24:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: add MPF parsing support
	  Parse APP2 segments containing Multi-Picture Format data according to CIPA DC-x
	  007-2009 specification. This enables handling of JPEG files with multiple
	  embedded images like panoramas or stereoscopic pairs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

2025-12-17 14:39:07 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: add synthetic header/footer for XMP
	  Add synthetic xpacket XML header and footer if missing in XMP data in APP1
	  segment, since they are needed for the parsing function
	  gst_tag_list_from_xmp_buffer().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

2025-12-17 14:47:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst/jpegformat/gstjpegparse.c:
	  jpegparse: add metadata state flag
	  This ensures metadata from APP segments and comments is accounted for,
	  preventing the loose of those segments.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10301>

2025-12-18 17:47:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/modelinfo.c:
	  modelinfo: Add some missing annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10410>

2025-12-17 14:24:31 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Simplify timestamp tracking
	  Apart from keeping less state around this also calculates more accurate
	  timestamps because of tracking everything in terms of edit units instead of
	  nanoseconds.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10396>

2025-12-17 11:57:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfdemux.h:
	  mxfdemux: Switch edit unit position tracking to unsigned integers
	  These can never become negative and the only negative number in use is
	  -1 for "unset", which maps equally well to G_MAXUINT64.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10396>

2025-12-17 18:58:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/aiff/aiffparse.c:
	* gst/aiff/aiffparse.h:
	  aiffparse: Remove segment closing on non-flushing seeks
	  That's a 0.10 leftover and not necessary anymore, and can confuse downstream
	  elements unnecessarily.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10399>

2025-12-17 18:53:26 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfdemux.c:
	* gst/mxf/mxfdemux.h:
	  mxfdemux: Remove segment closing on non-flushing seeks
	  That's a 0.10 leftover and not necessary anymore, and can confuse downstream
	  elements unnecessarily.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4803
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10399>

2025-12-17 10:23:25 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/aes/gstaesdec.c:
	  aesdec: use gsize for buffer sizes and fix log format
	  Replace casts with gsize in gst_aes_dec_prepare_output_buffer() and use
	  G_GSIZE_FORMAT for logging to avoid truncation and warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10239>

2025-11-28 14:40:49 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/aes/gstaesenc.c:
	  aesenc: use gsize for buffer sizes and fix log format
	  Replace casts with gsize in gst_aes_enc_prepare_output_buffer() and use
	  G_GSIZE_FORMAT for logging to avoid truncation and warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10239>

2025-12-17 11:07:18 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/hls/gsthlssink.c:
	  hlssink: Guard NULL structure and use gst_structure_has_name()
	  Prevent NULL dereference by checking gst_message_get_structure()
	  result before accessing fields. Replace strcmp() with
	  gst_structure_has_name() for safe structure name comparison.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10393>

2025-12-11 21:53:04 -0500  Aaron Boxer <aaron.boxer@collabora.com>

	* gst-libs/gst/play/gstplay.c:
	  play: do not call gst_pb_utils_get_codec_description if caps are not fixed
	  this avoids throwing a (harmless) exception when stream selection is
	  called before pipeline is linked
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10341>

2025-12-15 17:57:49 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  docs: Update gir / plugins docs cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10384>

2025-12-15 15:08:02 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/tflite/gsttfliteinference.c:
	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	* gst/tensordecoders/gstssdtensordec.c:
	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  gst: Rename GstValueSet to GstValueUniqueList
	  GObject-Introspection has an issue with GstSet because anything that starts with
	  'gst_value_set' becomes something that belongs to 'GstSet' but we have
	  gst_value_set_bitmask and gst_value_set_SOMETHING (), which all would become
	  methods of GstSet.
	  To avoid this, rename GstSet (aka GstValueSet) to GstUniqueList (aka
	  GstValueUniqueList).
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4813
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10384>

2025-12-16 13:05:19 +0100  François Laignel <francois@centricular.com>

	* gst/mxf/mxfdemux.c:
	  mxfdemux: send event SegmentDone for segment seeks
	  ... instead of sending an EOS event in that case.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10331>

2025-12-10 15:54:50 +0100  Jakub Adam <jakub.adam@collabora.com>

	* ext/vmaf/meson.build:
	  meson: fix building -bad tests with disabled vmaf
	  Fixes an error from Meson:
	  subprojects/gst-plugins-bad/tests/check/meson.build:175:85: ERROR:
	  Unknown variable "libvmaf_dep".
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10353>

2025-12-13 11:29:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/fdkaac/gstfdkaacdec.c:
	  fdkaacdec: Invalidate channel_types/indices when setting a known config
	  Otherwise switching from an unknown config (which is then mapped one by one) to
	  a known config and then back to the same unknown config makes it use invalid
	  cached channel positions.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4791
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10370>

2025-11-26 20:09:20 +0100  Jakub Adam <jakub.adam@collabora.com>

	* ext/dtls/gstdtlsdec.c:
	  dtlsdec: mark generated cert agent with GST_OBJECT_FLAG_MAY_BE_LEAKED
	  So that it is ignored by the leaks tracer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10366>

2025-12-12 15:41:42 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	  win32ipcbasesink: Serialize metas from uploaded buffer
	  Use metas attached to the uploaded buffer instead of the original one,
	  as the uploaded buffer may have different memory-layout-related metas
	  such as video meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10362>

2025-12-10 16:30:55 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcsink.cpp:
	  win32ipcsink: Preserve original buffer flags in raw-video fallback path
	  Copy all metadat including buffer flags from the original buffer so
	  that clients receive the intended information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10343>

2025-12-09 11:12:12 +0100  Hyunjun Ko <zzoon@igalia.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: Add VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 format
	  Add support for VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
	  which is the Vulkan equivalent of P010.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10333>

2025-12-10 20:53:29 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: gst-plugins-bad doc cache update
	  - cache update
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10340>

2025-12-09 15:03:34 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstssdtensordec.c:
	* gst/tensordecoders/gstssdtensordec.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: rename ssdobjectdetector to ssdtensordec
	  - renamed ssdobjectdetector to ssdtensordec
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10340>

2025-12-08 12:58:44 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst-python: make python linter happy with test_analytics
	  - Change to be confirm fory PEP8
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-08 00:09:47 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoders: yolo tensordecoders
	  - Change to dims-order from row-majot to col-major as they are col-major and
	  with new modelinfo improvement we can communicate this from inference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-11-30 22:42:09 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: refactor to use ModelInfo
	  - Retrieve model metadata from modelInfo instead of from ONNX.
	  - Validate modelInfo match ONNX, when available
	  - Get means and stddev from ModelInfo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-03 22:24:27 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	* ext/tflite/meson.build:
	* ext/tflite/modelinfo.c:
	* ext/tflite/modelinfo.h:
	  tflite: adapt to analytics modelinfo moved
	  - use modelinfo from analytics
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-03 22:23:32 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/analytics.h:
	* gst-libs/gst/analytics/meson.build:
	* gst-libs/gst/analytics/modelinfo.c:
	* gst-libs/gst/analytics/modelinfo.h:
	  analytics: move modelinfo to analytics lib
	  - moved to analytics and added dims-order setting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10244>

2025-12-09 22:01:48 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstioutracker.h:
	  tensordecoder: fix typo in header
	  - gstreamer-ssdobjectdetector -> gstreamer-ioutracker
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10342>

2025-12-09 17:30:58 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/nice/nicetransport.c:
	* gst-libs/gst/webrtc/nice/niceutils.h:
	  webrtc/nice: fix crashes on gathering stats for relay candidates
	  libnice does not have TURN information for remote relay candidates,
	  but the `nice_candidate_relay_address` returns void and doesn't
	  check if the `turn` field is set, unlike
	  `nice_candidate_stun_server_address`.
	  As a consequence, we must only call the API for local candidates.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10336>

2025-12-09 19:13:20 +0000  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.50

=== release 1.27.50 ===

2025-12-09 19:08:48 +0000  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.27.50

2025-12-05 13:15:19 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst-libs/gst/wayland/gstwlvideoformat.h:
	  wayland: Add Y444 pixel format support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10307>

2025-12-05 13:52:45 +0100  Robert Mader <robert.mader@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Propose udmabuf allocator
	  This change sync both GTK and native waylandsink propose_allocation method and
	  adds support for the new udmabuf allocator and dmabuf pool.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10307>

2025-11-26 21:44:56 +1100  Jan Schmidt <jan@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Ensure ice-gathering-state reaches complete
	  If there are pending ice candidates queued for emission when the
	  underlying ICE implementation signals that all transports have completed
	  gathering ICE candidates, then reporting that the 'ice-gathering-state'
	  has reached 'complete' state is deferred. In that situation, we need
	  to emit the completion state change after the pending candidates finish
	  emission. Previously, the state change would not complete sometimes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10206>

2025-12-08 16:20:39 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/codecparsers/gsth264bitwriter.c:
	  codecparsers: h264bitwriter: Fix writing of scaling lists
	  The logic in the writer was comparing the scaling lists differently than
	  the parser. Where the parser compared the first list to the defaults and
	  later lists to the earlier, the writer compared every list to the default.
	  This means a PPS received with scaling lists 0,3,6,7 would be transmitted
	  with 0-11 all filled in. There was also an extra nested loop with the same
	  iteration criteria that needed to be removed.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9505>

2025-12-08 12:19:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* ext/vulkan/vkvp9dec.c:
	  vulkan: decoders: fallback to video decoder's decide_allocation()
	  As in !10297 Vulkan image buffer pool isn't allocated but a video decoder plain
	  buffer pool, which is less expensive than the Vulkan one, and it will be
	  de-allocated shortly afterwards.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10324>

2025-12-08 12:14:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	  vulkanav1dec: renegotiate after events
	  Missed condition when AV1 decoding was merged, while it was merged for H.264 and
	  H.265: !9560 and VP9 was merged initially with it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10324>

2025-12-04 16:40:25 -0600  Brad Reitmeyer <brad.reitmeyer@resi.io>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: Fix frame completion callbacks for firmware 14.3+
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10295>

2025-12-06 10:25:21 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/transportstream.c:
	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: Keep a ref of the ICEStream in the TransportStream
	  By doing so we avoid potential race conditions. The libnice ICE implementation
	  was then adapted to comply with the transfer-full return value of the
	  `gst_webrtc_ice_add_stream()` vfunc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10312>

2025-12-05 17:16:05 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcserver.cpp:
	  win32ipc: Enhance I/O cancel sequence
	  Waits for pending I/O before releasing overlap struct to avoid
	  potential use-after-free
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 22:16:32 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	* sys/win32ipc/gstwin32ipcbasesink.h:
	* sys/win32ipc/gstwin32ipcbufferpool.cpp:
	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcsink.cpp:
	* sys/win32ipc/gstwin32ipcsink.h:
	* sys/win32ipc/gstwin32ipcsrc.cpp:
	* sys/win32ipc/gstwin32ipcsrc.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/meson.build:
	* sys/win32ipc/plugin.cpp:
	  win32ipc: Add generic shared memory src/sink elements
	  Adding win32ipcsink and win32ipcsrc element which supports any
	  type of streams in addition to raw video
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 19:47:29 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcbasesink.cpp:
	* sys/win32ipc/gstwin32ipcbasesink.h:
	* sys/win32ipc/gstwin32ipcbasesrc.cpp:
	* sys/win32ipc/gstwin32ipcbasesrc.h:
	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/gstwin32ipcvideosink.h:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	* sys/win32ipc/gstwin32ipcvideosrc.h:
	* sys/win32ipc/meson.build:
	  win32ipc: Add baseclass implementation
	  Extract common logic from video elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 17:37:11 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcmemory.cpp:
	* sys/win32ipc/gstwin32ipcmemory.h:
	* sys/win32ipc/gstwin32ipcmmf.cpp:
	* sys/win32ipc/gstwin32ipcmmf.h:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	  win32ipc: Use SIZE_T for allocation size representation
	  ... instead of UINT32.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 15:51:08 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	  win32ipcvideosink: Enhance EOS sequence
	  Fully drain queued buffers on EOS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-04 12:49:28 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcclient.h:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	  win32ipcvideosrc: Add leaky-type and {max, current-level}-buffers properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-03 19:28:54 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipc.cpp:
	* sys/win32ipc/gstwin32ipc.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/meson.build:
	  win32ipcvideosink: Add leaky-type and {max, current-level}-buffers properties
	  Allows blocking streaming thread when clients are not consuming
	  incoming buffers fast enough
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-03 17:32:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcmemory.cpp:
	  win32ipcmemory: Refactor memory allocator
	  Use mutex/cond instead of GstPoll
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-12-02 19:16:06 +0900  Seungha Yang <seungha@centricular.com>

	* sys/win32ipc/gstwin32ipcclient.cpp:
	* sys/win32ipc/gstwin32ipcclient.h:
	* sys/win32ipc/gstwin32ipcmemory.cpp:
	* sys/win32ipc/gstwin32ipcmemory.h:
	* sys/win32ipc/gstwin32ipcmmf.cpp:
	* sys/win32ipc/gstwin32ipcmmf.h:
	* sys/win32ipc/gstwin32ipcprotocol.cpp:
	* sys/win32ipc/gstwin32ipcprotocol.h:
	* sys/win32ipc/gstwin32ipcserver.cpp:
	* sys/win32ipc/gstwin32ipcserver.h:
	* sys/win32ipc/gstwin32ipcutils.cpp:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	* sys/win32ipc/meson.build:
	* sys/win32ipc/protocol/win32ipcmmf.cpp:
	* sys/win32ipc/protocol/win32ipcmmf.h:
	* sys/win32ipc/protocol/win32ipcpipeclient.cpp:
	* sys/win32ipc/protocol/win32ipcpipeclient.h:
	* sys/win32ipc/protocol/win32ipcpipeserver.cpp:
	* sys/win32ipc/protocol/win32ipcpipeserver.h:
	* sys/win32ipc/protocol/win32ipcprotocol.cpp:
	* sys/win32ipc/protocol/win32ipcprotocol.h:
	* sys/win32ipc/protocol/win32ipcutils.cpp:
	* sys/win32ipc/protocol/win32ipcutils.h:
	  win32ipc: Rewrite plugin
	  Pre-work to support a generic IPC element in addition to the existing
	  raw-video specific elements.
	  Summary of changes:
	  * Use an unnamed MMF handle with DuplicateHandle() instead of a named
	  handle to prevent unintended access from other processes via
	  name-based handle opening
	  * Refactor server/client implementation based on the D3D12 IPC element
	  design
	  * Replace the previous custom data struct with GstCaps and GstMeta to
	  describe video format and memory layout
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10296>

2025-07-03 14:35:21 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	  analytics segmentation: Implement vidoe matrix meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-05-18 11:59:08 +0200  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	* gst-libs/gst/analytics/gstanalyticsobjectdetectionmtd.c:
	  analytics od mtd: Implement matrix meta transformation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9497>

2025-12-05 09:19:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/va/gstvabasedec.c:
	  vabasedec: Don't assert when negotiating based on a gap event before the first buffer
	  Instead fall back to the video decoder base class `decide_allocation()` until
	  the minimum number of required buffers is known, which is usually the case after
	  the codec parameters (sequence header) are read.
	  While the minimum number of buffers is known ahead of time for some codecs like AV1,
	  we still only set it once the codec parameters are parsed as otherwise an unused
	  VA buffer pool will already be created together with surface allocations for the
	  gap event. This pool will be deallocated again shortly afterwards, just to
	  create a new pool with the correct configuration.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4779
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10297>

2025-12-04 20:10:59 +0100  Mathieu Duponchelle <mathieu@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	  gst-plugins-bad: update plugins cache
	  - correction for yolotensordec doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-28 14:17:07 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoder: Add caps to Yolo decoders
	  - Tensor caps added
	  - Rename yolotensordec to yolov8tensordec. This reflects that this tensor is different for older versions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-28 12:17:29 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstioutracker.c:
	* gst/tensordecoders/gstssdobjectdetector.c:
	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.c:
	  tensordecoder: Fix metadata long name to be more explicit
	  - For all tensor decoders
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-22 21:35:17 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstclassifiertensordecoder.h:
	  tensordecoder: refactor classifiertensordecoder to support both softmaxed and non-softmaxed tensors
	  This architecture separates negotiation concerns from processing, improving efficiency and code clarity.
	  - Add constraints on tensor caps
	  - Add validation between between model loaded vs label labels files
	  - Make classifier generic (not assuming a 1000 classes)
	  - Fixed mismatch return type
	  - improve error handling in classification
	  - Warn if no label found from labels file
	  - Separate tensor groups: Define GROUP_ID_CLASSIFICATION and
	  GROUP_ID_CLASSIFICATION_SOFTMAXED as distinct tensor groups, as they represent
	  different tensor formats that don't belong to the same group.
	  - Enhanced caps template: Updated sink pad caps to support both tensor formats
	  using a LIST, allowing the decoder to negotiate with either type.
	  - Cache negotiation result: Added do_softmax member variable to cache whether
	  softmax processing is needed, determined once during set_caps based on the
	  negotiated tensor-id rather than checking at runtime.
	  - Renamed softmax_res to postproc_result: Better reflects dual usage for both
	  softmax computation and uint8-to-float conversion. Always allocated since
	  it's needed for uint8 conversion even when tensors are pre-softmaxed.
	  - Optimized tensor retrieval: get_tensor() now only searches for the specific
	  tensor-id that was negotiated, rather than trying both types.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-22 21:21:50 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstssdobjectdetector.c:
	  tensordecoder: refactor ssd tensordecoder
	  - ssd:Add constrains on tensor caps
	  - ssd:Update ssd tensor-decoder to follow ids from tensor id registry
	  - ssd:Add constrains on tensor caps
	  - ssd:Explicit batch of 1: dims=<(int)1, (int)[1,max]>
	  - ssd:Implicit batch of 1: dims=<(int)[1,max]>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-22 21:19:01 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensordecoder: refactor facedetector tensordecoder
	  - Add constrains on tensor caps
	  - Downgrade tensordecoder's rank non accelerated to secondary
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-28 11:42:07 -0500  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gsttensordecodebin.c:
	* gst/tensordecoders/gsttensordecodebin.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: Add tensordecoderbin
	  - Adding a tensordecodebin able to auto-plug the correct tensor-decoder
	  - Add tensordecodebin to tensordecoders plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-10-14 14:09:30 -0400  Daniel Morin <daniel.morin@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tflite: adding tensor caps
	  - tflite_inference now generate tensor caps.
	  - name model_incaps and model_outcaps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-10-14 00:12:53 -0400  Daniel Morin <daniel.morin@collabora.com>

	* ext/tflite/modelinfo.c:
	* ext/tflite/modelinfo.h:
	  analytics: add method to retrive group-id from modelinfo
	  - Adding modelinfo_get_quark_group_id
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2025-11-26 20:53:35 -0500  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnx: Add tensor capabilities support to gstonnxinference
	  This commit enhances the gstonnxinference element by introducing comprehensive
	  tensor capabilities support, enabling better negotiation between the inference
	  element and downstream tensor decoders.
	  Key Changes:
	  - Implement tensor capabilities description mechanism
	  - Improve caps negotiation and propagation
	  Detailed Modifications:
	  - Disable passthrough mode to control tensor caps propagation
	  - Extract group-id from ONNX model metadata
	  - Create tensor capabilities structure with:
	  * Dimensions order (row-major)
	  * Tensor dimensions
	  * Tensor identifier
	  * Data type information
	  - Build GstSet of tensor capabilities under the group-id
	  - Utilize gst_tensor_meta_set() for robust meta handling
	  - Update transform_caps() to handle tensor capabilities in SINK and SRC pads
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9109>

2021-10-22 11:09:07 -0500  Diego Nieto <dnieto@fluendo.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/meson.build:
	* ext/vmaf/gstvmafelement.c:
	* ext/vmaf/gstvmafelement.h:
	* ext/vmaf/gstvmafplugin.c:
	* ext/vmaf/meson.build:
	* meson.options:
	* tests/check/elements/vmaf.c:
	* tests/check/gst-plugins-bad.supp:
	* tests/check/meson.build:
	  vmaf: add new element to calculate VMAF scores
	  Introduces the `vmaf` element, which calculates video quality scores by
	  comparing a reference stream against a distorted stream.
	  The plugin is coded against the libvmaf 2.0 API. As such it requires that
	  libvmaf => 2.0 be installed for the plugin to compile.
	  Scores can be retrieved via 2 methods:
	  1. Message Bus: Emits messages containing "VMAF.type" (distinguished as
	  "MESSAGE_TYPE_FRAME" or "MESSAGE_TYPE_POOLED").
	  2. File Output: Writes results to disk in CSV, JSON, or XML formats by
	  setting the "results-filename" property.
	  Co-authored-by: Andoni Morales Alastruey <amorales@fluendo.com>
	  Co-authored-by: Casey Bateman <Casey.Bateman@hudl.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9757>

2025-12-04 10:34:03 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/closedcaption/gstcea708decoder.c:
	* ext/closedcaption/gstcea708decoder.h:
	* ext/closedcaption/gstceaccoverlay.c:
	* ext/closedcaption/gstceaccoverlay.h:
	* ext/meson.build:
	* gst/closedcaption/bcd.h:
	* gst/closedcaption/bit_slicer.c:
	* gst/closedcaption/bit_slicer.h:
	* gst/closedcaption/ccutils.c:
	* gst/closedcaption/ccutils.h:
	* gst/closedcaption/decoder.c:
	* gst/closedcaption/decoder.h:
	* gst/closedcaption/gstcccombiner.c:
	* gst/closedcaption/gstcccombiner.h:
	* gst/closedcaption/gstccconverter.c:
	* gst/closedcaption/gstccconverter.h:
	* gst/closedcaption/gstccextractor.c:
	* gst/closedcaption/gstccextractor.h:
	* gst/closedcaption/gstcea608mux.c:
	* gst/closedcaption/gstcea608mux.h:
	* gst/closedcaption/gstclosedcaption.c:
	* gst/closedcaption/gstcodecccinserter.c:
	* gst/closedcaption/gstcodecccinserter.h:
	* gst/closedcaption/gsth264ccextractor.c:
	* gst/closedcaption/gsth264ccextractor.h:
	* gst/closedcaption/gsth264ccinserter.c:
	* gst/closedcaption/gsth264ccinserter.h:
	* gst/closedcaption/gsth264reorder.c:
	* gst/closedcaption/gsth264reorder.h:
	* gst/closedcaption/gsth265ccextractor.c:
	* gst/closedcaption/gsth265ccextractor.h:
	* gst/closedcaption/gsth265ccinserter.c:
	* gst/closedcaption/gsth265ccinserter.h:
	* gst/closedcaption/gsth265reorder.c:
	* gst/closedcaption/gsth265reorder.h:
	* gst/closedcaption/gstline21dec.c:
	* gst/closedcaption/gstline21dec.h:
	* gst/closedcaption/gstline21enc.c:
	* gst/closedcaption/gstline21enc.h:
	* gst/closedcaption/hamm.h:
	* gst/closedcaption/io-sim.c:
	* gst/closedcaption/io-sim.h:
	* gst/closedcaption/macros.h:
	* gst/closedcaption/meson.build:
	* gst/closedcaption/misc.h:
	* gst/closedcaption/raw_decoder.c:
	* gst/closedcaption/raw_decoder.h:
	* gst/closedcaption/sampling_par.c:
	* gst/closedcaption/sampling_par.h:
	* gst/closedcaption/sliced.h:
	* gst/meson.build:
	* meson.options:
	* tests/check/meson.build:
	  closedcaption: Remove cc708overlay
	  It was deprecated and cea708overlay from gst-plugins-rs is the replacement.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4207
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10285>

2025-12-04 12:57:26 +0800  Yun Liu <yun.m.liu@intel.com>

	* gst-libs/gst/analytics/meson.build:
	  analytics: Fix build on MSVC by using libm dependency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10283>

2025-12-02 17:52:34 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/midi/midiparse.c:
	  midiparse: Fix a couple of potential out-of-bounds reads
	  Also use an unsigned integer for parsing variable length integers as shifting
	  bits out of the sign bit is undefined behaviour.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10276>

2022-04-01 05:54:29 +1100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Fix potential deadlock changing pmt-interval
	  The object lock is the innermost lock. Don't take
	  the mux->lock while holding it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10261>

2025-11-28 15:12:37 +0200  Vivia Nikolaidou <vivia@ahiru.eu>

	* gst/mxf/mxfmpeg.c:
	  mxfmpeg: Add custom Sony picture essence coding UL
	  Sony seems to use 06.0e.2b.34.04.01.01.03.0e.06.41.02 as prefix for
	  their custom picture essence codings, and specifically the MPEG one
	  potentially uses the same semantics.
	  This comes from a file with:
	  picture essence coding 06.0e.2b.34.04.01.01.03.0e.06.41.02.01.04.03.01
	  codec 00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00
	  essence container 06.0e.2b.34.04.01.01.02.0d.01.03.01.02.04.60.01
	  which seemed to be XDCAM, aka decodable as MPEG-2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10219>

2025-10-08 02:31:50 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlbasesink.c:
	* ext/curl/gstcurldefaults.h:
	* ext/curl/gstcurlhttpsink.c:
	* ext/curl/gstcurlhttpsrc.c:
	  curl: Ensure set_opt() is called with a long value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2025-03-16 20:23:48 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Fix pushing incorrect buffers after seek
	  We must stop any existing transfer when seeking or we may push buffers
	  from the old request that downstream isn't expecting, causing decode errors.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/579
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2025-03-16 20:17:58 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Cleanup logging of received headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2021-05-11 23:54:49 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Fix content size reported
	  During a range request, the Content-Length header only reports the
	  length transfered. The Content-Range header should report the total
	  length if known. The current code would inconsistently use either
	  or race and use the wrong length.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2021-05-11 23:58:54 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	* ext/curl/gstcurlhttpsrc.h:
	  curl: remove unused content_type field
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2021-05-08 21:23:46 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	* tests/check/elements/curlhttpsrc.c:
	  curl: Reset request status on uri change
	  We need to stop the current transfer and start a new one if the uri
	  was changed. Also fix the 'test_range_get' to do 20 requests, instead
	  of one request and 19 seeks past EOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5537>

2025-12-01 18:04:15 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfvanc.c:
	  mxfmux: Create empty edit units for VANC packets without content or gap events
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10256>

2025-12-01 13:00:14 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Consider DTS in private streams as audio instead of private
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10249>

2025-12-01 12:53:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  streams: Add GST_STREAM_TYPE_METADATA for metadata streams
	  And handle it inside parsebin and tsdemux.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10249>

2025-11-26 14:28:33 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/vulkan/vkviewconvert.c:
	  vulkan: zero-initialize ViewUpdate before use
	  Ensure ViewUpdate struct is fully initialized to avoid copying
	  uninitialized fields when writing to uniform buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10200>

2025-12-01 13:57:20 +0900  Seungha Yang <seungha@centricular.com>

	  asiodeviceprovider: Fix deadlock on stop
	  Ensure that main loop is fully running during start() to avoid
	  below deadlock sequence
	  * GstDeviceProvider::start() spawns a background thread
	  * GstDeviceProvider::stop() is called before the background thread
	  actually starts running the main loop
	  * g_main_loop_quit() is invoked, but since the main loop has not
	  started yet, it has no effect
	  * stop() waits for the background thread to join
	  * The background thread eventually starts the main loop on the
	  background thread
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10245>

2025-11-30 19:22:03 +0100  David Maseda Neira <david.maseda@cinfo.es>

	* sys/nvcodec/gstnvh264encoder.cpp:
	* sys/nvcodec/gstnvh265encoder.cpp:
	  nvcodec: Enable num-slices property on nvh26{4,5}enc to force number of output slices
	  Adds a new num-slices property (range 0-32, default 0) to both nvh264enc
	  and nvh265enc encoders to control the number of slices per frame. This
	  ensures compatibility with hardware decoders that require exactly 1
	  slice per NAL unit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10242>

2025-11-21 15:22:54 +0100  Robert Mader <robert.mader@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Promote set_caps debug print to info
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 16:11:56 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	  gtkwaylandsink: Add VideoCropMeta support
	  Implement support for the crop meta, this allow offloading the crop to the
	  compositor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 16:05:15 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	  gtkwaylandsink: De-duplicate frame copy code
	  Regardless if we have a Dumb or a SHM, the copy code is identical. Factor this
	  code so it can be shared.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 15:51:39 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	  waylandsink: Add VideoCropMeta support
	  Implement support for the crop meta, this allow offloading the crop to the
	  compositor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 15:28:29 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: De-duplicate frame copy code
	  Regardless if we have a Dumb or a SHM, the copy code is identical. Factor this
	  code so it can be shared.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-03 15:34:47 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Add the ability to offload cropping
	  This add a new method on the GstWlWindow that allows to offload a crop
	  rectangle.
	  Co-authored-by: Robert Mader <robert.mader@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-11-17 17:04:18 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlbuffer.c:
	* gst-libs/gst/wayland/gstwlbuffer.h:
	  wayland: buffer: Add getters for video and crop meta
	  This will be used by the GstWlWindow to calculate the source rectangle to crop
	  the surface to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9991>

2025-12-01 17:58:22 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/mxf/mxfmux.c:
	  mxfmux: Fix memset usage
	  This was supposed to clear the local, stack-allocated struct and not set another
	  pointer to NULL in a complicated way.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10254>

2025-11-26 14:17:14 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/vulkan/vkcolorconvert.c:
	  vulkan: initialize YUVUpdateData before memcpy
	  Ensure YUVUpdateData is fully initialized to avoid copying
	  uninitialized fields when writing to uniform buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10199>

2025-11-28 21:08:17 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Add lower resolution limits for h264, h265, av1 caps
	  In my testing, these are the lowest resolution values that
	  VideoToolbox can decode for each of these codecs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9448>

2025-07-24 21:54:59 +0200  Rafael Caricio <rcaricio@netflix.com>

	* sys/applemedia/helpers.h:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: Support AV1 hardware decoding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9448>

2025-10-27 14:19:34 +0000  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtdec.h:
	  vtdec: add VP9 decode support
	  - Only profile 0 and 2 (10-bits) work. Others allow creating the
	  decompression session but cause per-frame failures, so I'm
	  explicitly disabling them in caps.
	  - 64x64 is the minimum supported resolution. Limiting with caps for
	  same reason as above.
	  - API to enable supplemental codecs for iOS appeared in 26.2. vp9
	  doesn't work before this.
	  - Lifting VTRegisterSupplementalVideoDecoderIfAvailableFunc via dlsym
	  on iOS in case GStreamer is built with an older SDK.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10175>

2025-11-21 15:48:05 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/vtdec.c:
	  vtdec: Fix race condition in decoder draining. Fluster runs were unstable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10229>

2024-01-10 09:30:51 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/gstyolosegtensordecoder.c:
	* gst/tensordecoders/gstyolosegtensordecoder.h:
	* gst/tensordecoders/gstyolotensordecoder.c:
	* gst/tensordecoders/gstyolotensordecoder.h:
	* gst/tensordecoders/meson.build:
	  tensordecoders: Add tensor decoder element for yolo detection and segmentation models
	  A new set of tensor decoder that handles YOLO v5+ object detection and
	  YOLO v8+ segmentation.
	  `yolotensordecoder`: decodes tensors output(masks) from detection-only
	  models e.g yolov8s.onnx
	  `yolsegv8tensordecoder`: decoder tensors output(masks and logits) from
	  segementation models e.g FastSAM or yolov8s-seg
	  Co-authored-by: Vineet Suryan <vineet.suryan@collabora.com>
	  Co-authored-by: Santosh Mahto <santosh.mahto@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8652>

2025-11-26 13:32:51 -0500  Xavier Claessens <xclaessens@netflix.com>

	* gst/unixfd/gstunixfdsink.c:
	  unixfd: Fix pointer casting on 32bit arch
	  Fixes: #4766
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10212>

2025-11-25 12:55:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  va: simplify encoder's reconfig() virtual method
	  By using the new gst_va_encoder_open(), which closes it if a previous
	  incompatible configuration exists.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-13 14:08:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	* sys/va/gstvah265enc.c:
	  vah265enc: use new VA encoder setup()/open_2() API
	  This patch also contains the add of a refactor get_surface_alignment() in
	  GstVaEncoder helper, which before created a synthetic VAConfig to get the
	  surface alignment.
	  Now, with the API split we can call get_surface_alignment() after setup() and
	  before open_2() without the need of a synthetic VAConfig.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-13 12:24:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	  vaencoder: split open() in setup() and open_2()
	  Still keep open() for backward compatibility as a composite of both new
	  functions.
	  setup() -> creates VA config
	  open_2() -> creates VA context
	  The reason to use open_2() is because there's a close() and we should keep the
	  API symmetry.
	  It adds an internal function is_setup() to do a fine check of what is needed by
	  every other method.
	  Fixes #3393
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-13 11:55:34 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	  vaencoder: add gst_va_encoder_set_coded_buffer_size()
	  So encoding elements could update the coded buffer size after opened the encoder
	  helper object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-12 18:06:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	  vaencoder: allow lazy initialization for reconstruct buffers pool
	  Right now the open() method still creates the reconstruct buffer pool, but this
	  patch also allows its lazy creation.
	  Also the patch adds a namespaces for those member variables related only with
	  the reconstruct buffer pool.
	  And adds the function gst_va_encoder_set_reconstruct_pool_config(), that will
	  be used when an another alternative to the open() member is added in future
	  commits.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10115>

2025-11-26 14:41:35 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.m:
	  avfassetsrc: Explain how invalid ts and position should interact
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10197>

2025-11-26 12:18:26 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.m:
	  avfassetsrc: Better invalid timestamp handling and reporting
	  Now, invalid CMTime coming from AVFoundation will be properly
	  converted to GST_CLOCK_TIME_NONE (for buffer timestamp, buffer
	  duration and overall duration). And we no longer consider an
	  invalid buffer timestamp as a irrecoverable error, but just log the
	  problem instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10197>

2025-11-25 14:21:01 -0500  Dominique Leroux <dominique.p.leroux@gmail.com>

	* sys/applemedia/avfassetsrc.m:
	  avfassetsrc: Prevent access to released CMSampleBuffer
	  When the video sample buffers obtained from AVAssetReaderTrackOutput
	  contain data with line padding that differs from what GStreamer expects
	  (checked with GST_VIDEO_INFO_PLANE_STRIDE in
	  gst_core_video_wrap_pixel_buffer in corevideobuffer.c),
	  gst_core_media_buffer_new ends up creating a new GstBuffer with proper
	  layout and copying the original buffer content into the new buffer.
	  This means the original CMSampleBuffer gets released before we get to
	  the point where we access it to extract time information. So the comment
	  saying "cmbuf is now retained by buf (in meta)" (in avfassetsrc.c
	  nextBuffer) was not always right. But it was helpful in making me want
	  to see whether this was always true.
	  The code was reformulated to avoid having to rely on side effects, while
	  preserving a single call to CFRelease. The problem would have been more
	  obvious if there had been timestamp validation, so this is now
	  done. Frame duration will not systematically be valid (only timetamp has
	  to); therefore, invalid duration will not be used but will also not be
	  flagged as an error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10197>

2025-11-27 01:19:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/asio/gstasiodeviceprovider.cpp:
	* sys/asio/meson.build:
	  asio: Add compile-time detection for device monitoring support
	  Older versions of MinGW 32-bit, such as the one that we ship in
	  Cerbero, do not support CM_Register_Notification etc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

2025-09-08 21:13:14 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Fix some typos
	  Also convert an informative LOG to INFO
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

2025-09-09 13:49:53 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/asio/gstasiodeviceprovider.cpp:
	  asio: Add a separate debug category for the device provider
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

2025-09-09 09:05:44 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/asio/gstasiodeviceprovider.cpp:
	* sys/asio/meson.build:
	  asio: Implement device monitoring using USB events
	  ASIO doesn't provide a way to monitor for device registration
	  / disconnect, so we need to re-probe all the devices every time we get
	  a USB event.
	  We aggregate USB events by delaying the probe till 500ms have passed
	  since the last USB plug/unplug event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9663>

2024-07-24 09:11:49 +0800  Shengqi Yu (喻盛琪) <shengqi.yu@mediatek.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/unixfd/gstunixfdsink.c:
	  unixfdsink: add and notify clients-number
	  1. Add the client-number property.
	  2. When the number of clients increases or decreases, notify the client-number property.
	  This way, the app can know the current number of client connections based on the notification information,
	  allowing it to perform other operations, such as setting the server pipeline to NULL state when
	  there are no client connections.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7224>

2025-11-25 19:42:15 -0500  Xavier Claessens <xclaessens@netflix.com>

	* sys/aja/gstajasrc.cpp:
	  ajasrc: Rename variable to match gst_clock_is_system_monotonic()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8257>

2025-01-08 09:29:13 -0500  Xavier Claessens <xclaessens@netflix.com>

	* gst/unixfd/gstunixfdsink.c:
	* gst/unixfd/gstunixfdsrc.c:
	* sys/aja/gstajasrc.cpp:
	* sys/d3d11/gstd3d11ipc.cpp:
	* sys/d3d11/gstd3d11ipc.h:
	* sys/d3d11/gstd3d11ipcsink.cpp:
	* sys/d3d11/gstd3d11ipcsrc.cpp:
	* sys/d3d12/gstd3d12ipc.cpp:
	* sys/d3d12/gstd3d12ipc.h:
	* sys/d3d12/gstd3d12ipcsink.cpp:
	* sys/d3d12/gstd3d12ipcsrc.cpp:
	* sys/nvcodec/gstcudaipc.cpp:
	* sys/nvcodec/gstcudaipc.h:
	* sys/nvcodec/gstcudaipcsink.cpp:
	* sys/nvcodec/gstcudaipcsrc.cpp:
	* sys/win32ipc/gstwin32ipcutils.cpp:
	* sys/win32ipc/gstwin32ipcutils.h:
	* sys/win32ipc/gstwin32ipcvideosink.cpp:
	* sys/win32ipc/gstwin32ipcvideosrc.cpp:
	  GstClock: Add gst_clock_is_system_monotonic_clock
	  It was duplicated in many places and can be useful outside of GStreamer
	  as well.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8257>

2025-06-20 13:12:06 +0530  santosh mahto <santoshbit2007@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstioutracker.c:
	* gst/tensordecoders/gstioutracker.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	* tests/check/elements/ioutracker.c:
	* tests/check/meson.build:
	  tensordecoders: Implement IoU based tracker element
	  `ioutracker` element tracks objects in video frames
	  It uses object detection mtds to get the position and
	  detects the same object in next frame based on
	  Intersection-over-Union (IoU).  Based on this, it attaches
	  tracking mtd to buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9274>

2025-11-24 10:55:09 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvadisplay_priv.c:
	  vadisplay-priv: re-use log category from va plugin
	  Reuse this log category because is first created.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10192>

2025-11-19 13:47:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: remove extra call to get VA display
	  And precise the parameter type as VABufferType.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10192>

2025-11-04 17:36:42 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	  codecparsers: h266parser: fix documentation and parameter check
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2024-08-12 11:52:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/codecs/gstav1decoder.c:
	* gst-libs/gst/codecs/gstcodecpicture.c:
	* gst-libs/gst/codecs/gstvp9decoder.c:
	* gst-libs/gst/codecs/gstvp9statefulparser.c:
	  codecs: simple documentation fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2025-10-30 13:20:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: fix GI documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10180>

2025-11-11 12:48:59 +0100  Sven Püschel <s.pueschel@pengutronix.de>

	* sys/uvcgadget/gstuvcsink.c:
	  uvcsink: add VYUY mapping
	  The mapping was copied from plugins good [1]. At the time of the copy it
	  missed the VYUY mapping, therefore add it now.
	  [1] https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6037#note_2573767
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10070>

2025-01-21 13:32:02 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstanalyticsoverlay.c:
	* ext/analyticsoverlay/gstsegmentationoverlay.c:
	* ext/analyticsoverlay/gstsegmentationoverlay.h:
	* ext/analyticsoverlay/meson.build:
	  analyticsoverlay: add a segmentation overlay
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7149>

2025-11-24 18:58:43 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: Add some debug output for writing ancillary data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10182>

2025-11-19 15:01:40 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdobjectdetector: Print class index
	  Print the class index, this helps debugging labels lists.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:23:33 -0600  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Print clearer message when setting wrong labels file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:23:10 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Remove unused mean/stddev default values
	  The arrays are always set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:03:52 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Read mean/stddev from Image.NominalPixelRange metadata
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-19 15:02:56 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/tflite/gsttfliteinference.c:
	  tflite & onnxinference: Substract means
	  This makes them work like everyone else.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-18 18:13:07 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Remove pointless arguments to macro
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-18 18:12:12 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Correctly pass planarity of input tensor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-18 16:11:28 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Mark dimension meaning explicitly
	  This makes the code more correct, as it make some incorrect assumptions
	  in some places.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-17 11:24:06 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Put more error details from the ONNX Runtime
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-15 13:28:50 -0600  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Create environment before using more APIs
	  This call has the side effect of enabling the onnxrt logging system,
	  so we must do it earlier
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-11-13 14:55:52 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Split the ONNX runtime debug from the element's
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-10-31 18:51:14 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Avoid deadlocking on startup error
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-10-31 18:51:02 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Hard fail when selected provider is not available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-08-08 15:16:02 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/onnx/meson.build:
	  onnxinference: Remove explicit CPU execution provider setting
	  It's the default, and this one it avoid having to load the header file
	  which isn't always installed in the same place.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10143>

2025-02-15 12:45:05 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/icetransport.c:
	* gst-libs/gst/webrtc/icetransport.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/nice/nicetransport.c:
	* gst-libs/gst/webrtc/nice/niceutils.h:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	  webrtc: ice: Add support for getting the selected candidate pair
	  Expose a `gst_webrtc_ice_transport_get_selected_candidate_pair()` function
	  corresponding to the RTCIceTransport spec's `getSelectedCandidatePair()`. See
	  also
	  https://w3c.github.io/webrtc-pc/#dom-rtcicetransport-getselectedcandidatepair
	  This new function should be used instead of `gst_webrtc_ice_get_selected_pair()`
	  which is now deprecated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8484>

2025-07-09 10:08:38 +0200  Rinat Zeh <rinat.zeh@i-rz.de>

	* ext/meson.build:
	* ext/mpeghdec/gstmpeghdec.c:
	* ext/mpeghdec/gstmpeghdec.h:
	* ext/mpeghdec/meson.build:
	* meson.options:
	  mpeghdec: MPEG-H Audio decoder plugin
	  MPEG-H Audio decoder plugin based on Fraunhofer GitHub MPEG-H
	  decoder implementation (https://github.com/Fraunhofer-IIS/mpeghdec)
	  Co-authored-by: Florian Kolbeck <florian.kolbeck@i-rz.de>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9361>

2025-11-21 10:59:14 +0100  Hyunjun Ko <zzoon@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: Replace GstBuffer with GstMemory array for video sessions
	  GstBuffer has a maximum limit on the number of memories it can hold
	  (GST_BUFFER_MEM_MAX, typically 16). However, Vulkan video sessions
	  can require more memories than this limit - for example, AV1 decoding
	  on ANV requires over 30 memories.
	  This fixes AV1 decoding on ANV and any other scenarios where video
	  sessions require more than 16 memory allocations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10169>

2025-11-20 14:04:59 +0100  Hyunjun Ko <zzoon@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	  vkvideo-private: fix to use correct index for picking a memory type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10169>

2025-11-21 11:43:13 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/decklink/gstdecklinkvideosrc.cpp:
	  decklinkvideosrc: Don't add parity bits to the line number in GstAncillaryMeta
	  It's an 11 bit value without parity bits.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10167>

2025-11-21 11:41:41 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/gstajasink.cpp:
	  ajasink: Remove parity bits from ancillary meta DID/SDID before passing further
	  The GstAncillaryMeta contains the parity bits but the AJA SDK expects them
	  without.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10167>

2025-11-20 13:48:16 +0100  Hyunjun Ko <zzoon@igalia.com>

	* ext/vulkan/vkh265dec.c:
	  vkh265dec: fix a typo
	  This fixes also H265 decoding with LTR on ANV.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10166>

2025-11-20 12:42:48 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/unixfd/gstunixfdsrc.c:
	  unixfdsrc: Keep dmabuf mapped
	  The unixfdsrc has as equal use for CPU access and device access. Keeping the CPU
	  address mapping is preferable, with not down side for device access.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10153>

2025-11-20 12:41:10 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/va/gstvaallocator.c:
	  va: allocator: Keep dmabuf mapped
	  VA buffers are rarely access from CPU, but if this is someone use case, it is
	  preferable to keep the CPU address mapping around since this isn't cheap to
	  create each time we map/unmap the buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10153>

2025-11-07 19:29:24 -0300  L. E. Segovia <amy@centricular.com>

	* ext/dts/gstdtsdec.c:
	* ext/dts/meson.build:
	  gst: implement Orc-less cpuid routine for selecting asm routines
	  This commit removes the use of Orc's default target machinery as a way
	  to do CPUID detection on x86 and Arm. Instead I port xsimd's CPU
	  detection routine to C, cleaning up the instruction sets we don't use,
	  and also adding support for GCC/Clang's cpuid and xgetbv builtins.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10004>

2024-03-15 23:11:20 +1100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/tsmux/tsmux.c:
	  mpegtsmux: Avoid infinite recursion writing PCR packets
	  If scheduling a PCR packet from tsmux_packet_out(), or
	  already writing one, don't do the PCR checks that can
	  recurse infinitely and crash.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6380>

2025-10-15 06:49:03 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/sctp/sctpassociation.c:
	  sctp: Fix GMutex leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9846>

2025-10-15 04:35:27 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Fix a leak when setting caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9846>

2025-11-04 23:29:40 +0900  Seungha Yang <seungha@centricular.com>

	* gst/audiomixmatrix/gstaudiomixmatrix.c:
	* gst/audiomixmatrix/gstaudiomixmatrix.h:
	  audiomixmatrix: Add sparse matrix LUT optimization
	  Use precomputed LUTs for non-zero coefficients instead of
	  blindly traversing all input/output channel combinations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10002>

2025-11-17 16:25:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/decklink/gstdecklinkvideosink.h:
	  decklinkvideosink: Add support for outputting GstAncillaryMeta
	  This adds a new output-vanc boolean property.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10111>

2025-11-17 16:16:50 +0200  Sebastian Dröge <sebastian@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/decklink/gstdecklinkvideosink.h:
	  decklinkvideosink: Use GstVecDeque instead of GQueue for the pending frames
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10111>

2025-11-13 15:14:50 +0200  Sebastian Dröge <sebastian@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/decklink/gstdecklinkvideosrc.cpp:
	* sys/decklink/gstdecklinkvideosrc.h:
	  decklinkvideosrc: Add support for outputting all VANC via GstAncillaryMeta
	  This adds a new output-vanc boolean property.
	  As part of this, now all valid VANC lines are always checked for interesting
	  VANC. Previously we cached where CC or AFD/Bar was found and first checked that
	  line. Keeping this would complicate the code considerably, and here checking all
	  lines takes less than 1ms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10111>

2025-11-05 15:37:25 +0100  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/play/gstplay.c:
	  gstplay: Fixed wrong initial configuration
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10110>

2025-11-13 21:12:20 +0530  Sanchayan Maity <sanchayan@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/mxf/mxfvanc.c:
	* gst/mxf/mxfvanc.h:
	  mxfvanc: Add support for non-closed-caption VANC
	  - Extends mxfdemux with support for outputting VANC (ST436M) essence
	  tracks as ST2038 streams instead of extracting closed captions internally.
	  - Extends mxfmux with support for consuming ST2038 streams for outputting
	  VANC (ST436M) essence tracks instead of only supporting closed captions.
	  To support ST2038 instead of the earlier closed captions, we introduce a
	  breaking change to the caps handling on the pad. We also now support both
	  8 and 10-bit VANC data when reading from MXF.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10087>

2025-11-17 10:24:17 +0900  dongjoo.kim <dongjoo.kim@lge.com>

	* gst/mxf/mxfffv1.c:
	  mxfdemux: Fix typo on mxf_ffv1_create_caps
	  In this section, the p value cannot be NULL, so it is dead code.
	  However, if you refer to the code in mxf_ffv1_get_track_wrapping,
	  you can see that you should check desc, not p.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10095>

2025-11-18 11:03:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: add validation that format's chroma
	  gst_va_encoder_open() receives as parameters GStreamer Video Format and its
	  chroma. Nevertheless, chroma can be known from the format by using
	  gst_va_chroma_from_video_format().
	  Instead of removing a spurious method's parameter, this patch validates that
	  both coincide.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10086>

2025-10-06 20:46:10 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/hip/gsthip-interop.cpp:
	* gst-libs/gst/hip/gsthipdevice.cpp:
	* gst-libs/gst/hip/gsthipevent.cpp:
	* gst-libs/gst/hip/gsthipmemory.cpp:
	* gst-libs/gst/hip/gsthipstream.cpp:
	* gst-libs/gst/hip/meson.build:
	  hip: Generate gir files
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9804>

2025-11-17 14:50:21 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Apply background color even without mipmapping
	  Fix missing background color update for UV remapping when mipmapping
	  is disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10096>

2025-11-03 11:41:36 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* ext/smoothstreaming/gstmssdemux.c:
	  mssdemux: Clarify pad name cleanup in _create_pad()
	  Refactored _create_pad() to always free the pad name after pad creation attempt.
	  No actual leak existed; this change makes cleanup explicit and improves readability
	  after a static analyzer warning.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9982>

2025-11-13 09:14:59 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvadisplay_priv.c:
	* sys/va/gstvadisplay_priv.h:
	* sys/va/gstvaencoder.c:
	* sys/va/gstvaencoder.h:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  va: move methods from encoder to display-priv
	  These methods, semantically speaking, don't belong to the encoder helper object,
	  even if the attributes they are querying are only related with encoding
	  operations, since, in terms of the required parameters to call them, only
	  display is required.
	  The main problem with adding them in the encoder is that the encoder already has
	  entrypoint (and the profile when it's opened), and this methods are required to
	  be called previous the opening of the encoder object.
	  This patch proposes to move these methods to the GstVaDisplay namespace, but
	  privately, since they are used only by the elements in the plugins, not by the
	  public API.
	  Calling this attribute in a non-encoding entrypoint shouldn't be a problem for
	  any driver, it should return the unimplemented value.
	  No functional changes are done.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10083>

2025-11-11 04:27:42 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gsth266parse.h:
	  h266parse: Use VUI framerate when upstream framerate is 0/1
	  If upstream framerate is 0/1 (unknown) but VUI has framerate
	  information, use the VUI framerate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10039>

2025-11-11 04:18:04 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Use VUI framerate when upstream framerate is 0/1
	  If upstream framerate is 0/1 (unknown) but VUI has framerate
	  information, use the VUI framerate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10039>

2025-11-07 20:39:34 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth265parse.h:
	  h265parse: Use VUI framerate when upstream framerate is 0/1
	  If upstream framerate is 0/1 (unknown) but VUI has framerate
	  information, use the VUI framerate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10039>

2025-11-12 17:13:06 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264enc.c:
	  vkh264enc: remove unused member variable
	  The member variable out_state is not used in the code, so there's no need to
	  keep it as a member variable along the lifespan of the object.
	  Even more, it can be fetched with gst_video_encoder_get_output_state().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10080>

2025-10-30 23:25:23 +0900  Seungha Yang <seungha@centricular.com>

	* tests/check/elements/h265parse.c:
	  tests: h265parse: Update for AUD insertion
	  Updating tests to handle inserted AUD by h265parse
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9955>

2025-10-30 21:40:37 +0900  Seungha Yang <seungha@centricular.com>

	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth265parse.h:
	  h265parse: Add support for AUD insertion
	  Implement AUD insertion similar to h264parse
	  to work around decoding artifacts in multi-slice HEVC streams.
	  This fixes an issue with the Intel Media Foundation decoder in
	  Windows Media Player, where the decoded image becomes corrupted
	  in non-first slices when the frame lacks AUD
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9955>

2025-11-13 11:53:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: add more checks to gst_va_encoder_open()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10084>

2025-11-13 11:51:53 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: IS macros checks for NULL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10084>

2025-11-13 11:36:42 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: init() calls reset()
	  Thus avoiding repeated code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10084>

2025-11-03 11:23:36 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/mpegts/gst-scte-section.c:
	  scte-section: fix missing cleanup and clarify event ownership on parse failure
	  Free only the allocated component when _parse_splice_component() fails,
	  leaving event cleanup to the caller to maintain proper ownership.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9981>

2025-11-07 14:17:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvabaseenc.c:
	  vabaseenc: get usage hint with real entrypoint
	  Use class' entrypoint rather than a hardcoded one. Currently, in the case of
	  encoders, it doesn't matter much, but it makes the code robust for future
	  changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10077>

2025-11-07 14:19:17 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvabasedec.c:
	* sys/va/gstvabaseenc.c:
	* sys/va/gstvabasetransform.c:
	* sys/va/gstvacaps.c:
	* sys/va/gstvacaps.h:
	* sys/va/gstvacompositor.c:
	  va: use gst_video_is_dma_drm_caps()
	  Instead of local gst_caps_is_dmabuf()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10077>

2025-11-07 14:15:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/meson.build:
	  va: build: remove non-documentation headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10077>

2025-11-12 16:53:32 -0800  Matthew Semeniuk <megaman22342@live.ca>

	* gst-libs/gst/vulkan/gstvkqueue.h:
	  vulkan: add G_DECLS to gstvkqueue
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10078>

2025-11-12 16:53:05 -0800  Matthew Semeniuk <megaman22342@live.ca>

	* gst-libs/gst/vulkan/gstvkcommandpool.h:
	  vulkan: add G_DECLS to gstvkcommandpool
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10078>

2025-11-11 22:37:29 -0500  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  audio: Re-order the all formats
	  The order they were in was tripping a Rust unit test.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10074>

2025-08-15 15:16:57 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsbatchmeta.c:
	* gst-libs/gst/analytics/gstanalyticsbatchmeta.h:
	  batchmeta: Merge event/buffer/bufferlist into a single field
	  Everything serialized should be sent together
	  Break an API introduced since the last release.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9563>

2025-06-18 14:25:17 +0900  dongjoo.kim <dongjoo.kim@lge.com>

	* gst/id3tag/id3tag.c:
	  id3tag: Fix resource leak
	  When latin1 is not NULL and latin1[0] is '\0'
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10050>

2025-10-31 16:59:45 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsmeta: Initialize span to avoid undefined behavior
	  Fix uninitialized scalar variable by setting 'span' when max_relation_span is non-negative.
	  Prevents potential issues when accessing adjacency matrix.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9963>

2025-11-10 13:21:43 +0100  Kevin Scott <kevin.scott@axis.com>

	* ext/dtls/gstdtlsconnection.c:
	  dtlsconnection: Increase DTLS MTU to 1200
	  Returning 0 defaults the MTU to 256 in OpenSSL, which is too small for some
	  handshake messages. An MTU of 1200 prevents certificate fragmentation
	  and potential message reordering. Chromium does something similar:
	  https://chromium.googlesource.com/external/webrtc/+/06b8f7e/rtc_base/openssl_stream_adapter.cc#259
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10054>

2025-06-16 16:40:07 +0900  dongjoo.kim <dongjoo.kim@lge.com>

	* gst-libs/gst/wayland/gstwllinuxdmabuf.c:
	  wayland: Fix using uninitialized value of data.wbuf
	  There are cases which it goes to "out" without initializing data.wbuf
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10051>

2025-11-04 13:48:12 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/timecode/gstavwait.c:
	  avwait: Unify conditions between the different modes
	  And as part of that fix a couple of mode changes while running, e.g.
	  starting recording in video-first mode, then switching to running time mode and
	  only setting an end running time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10001>

2025-11-05 15:25:33 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* tests/check/libs/analyticsmeta.c:
	  memory: Add gst_map_info_clear() and use GST_MAP_REF_MEMORY for gst_buffer_map()
	  Also deprecate GstMemoryMapInfo and GstBufferMapInfo, and add g_autoptr support
	  for GstMapInfo directly.
	  This simplifies usage of the GstMapInfo API and reduces a bit of
	  inconsistencies.
	  For consistency, also add gst_map_info_init().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10020>

2025-11-06 18:06:46 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gstvp9parse.c:
	  videoparsers: Don't unnecessarily copy buffers
	  gst_base_parse_finish_frame() does not invalidate the buffer's data
	  anymore since a few years.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

2025-11-06 18:03:56 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gstmpeg4videoparse.c:
	* gst/videoparsers/gstmpegvideoparse.c:
	* gst/videoparsers/gstvp9parse.c:
	  videoparsers: Don't read GstMapInfo values after unmapping
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

2025-11-06 14:27:06 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  h26456parse: Don't unmap and unref buffers twice
	  And also don't unnecessarily copy it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

2025-11-06 14:26:01 +0200  Sebastian Dröge <sebastian@centricular.com>

	* gst/videoparsers/gstav1parse.c:
	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gstvp9parse.c:
	  videoparsers: Call gst_base_parse_frame_free() for custom allocated frames
	  Unlike the name suggests, for stack-allocated frames it only frees the
	  contained memory and does not free the frame itself.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10035>

2025-10-17 12:28:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvkutils.c:
	* ext/vulkan/gstvkutils.h:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkupload.c:
	  gstvkutils: Add utility function for plane dimension calculations
	  Adds gst_vulkan_video_info_get_plane_dimensions() to calculate plane's
	  dimensions required for Vulkan buffer/image copy operations. This function:
	  - Handle video metadata, if available, for padding
	  - Converts byte strides to pixel counts for Vulkan's bufferRowLength
	  - Share this calculations with vulkanupload and vulkandownload elements
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 10:26:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvkutils.c:
	* ext/vulkan/gstvkutils.h:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkupload.c:
	  gstvkutils: Add utility function for plane memory lookup
	  Added gst_vulkan_buffer_peek_plane_memory(). It finds the GstMemory associated
	  with a specific video plane. This replaces duplicated code in vkdownload and
	  vkupload elements.
	  This function properly handles both buffers with and without video metadata.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 21:13:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkdownload.c:
	  vulkandownload: fix indentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 21:08:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: fix indentation and missing indent control
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-10-16 21:10:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/elements/vkupload.c:
	  tests: vkupload: add multiple formats and resolutions test
	  Restructured the test allowing testing multiple formats (NV12 and RGBA) and
	  resolution.
	  Instead of a format-specific validation, the test keeps the input image and
	  compare it, row by row / pixel-perfect, with the output image. The test also
	  does memory dumps of each compared row for troubleshooting.
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8862>

2025-11-05 12:37:42 +0200  Rares Branici <rares.branici@senstar.com>

	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Initialize video_direction
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10016>

2025-11-05 12:37:01 +0200  Rares Branici <rares.branici@senstar.com>

	* gst-libs/gst/d3d11/gstd3d11converter.cpp:
	  d3d11converter: Initialize video_direction
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10016>

2025-11-04 17:20:16 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/wpe2/meson.build:
	  wpe2: Check for presence of wpe-platform.h
	  Just because WPEWebKit is new enough doesn't mean it has been built with
	  the WPE Platform API enabled. Check that its header is present before
	  building the plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10003>

2025-11-03 18:39:01 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12basefilter.cpp:
	* sys/d3d12/gstd3d12basefilter.h:
	* sys/d3d12/gstd3d12convert.cpp:
	* sys/d3d12/gstd3d12deinterlace.cpp:
	* sys/d3d12/gstd3d12fisheyedewarp.cpp:
	* sys/d3d12/gstd3d12interlace.cpp:
	* sys/d3d12/gstd3d12mipmapping.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	* sys/d3d12/gstd3d12remap.cpp:
	  d3d12basefilter: Make device access thread-safe
	  Since the device object can be cleared while handling allocation queries
	  during state changes, protect it with a mutex. Also, move the duplicated
	  allocation query handler into the base class to eliminate redundant code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9984>

2025-09-05 21:07:43 +0800  Nicholas Jin <nicholasdezai@gmail.com>

	* docs/plugins/gst_plugins_cache.json:
	  audio: add U20_32 and S20_32 audio format
	  Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9650>

2025-10-31 10:51:48 +0100  Loïc Le Page <llepage@igalia.com>

	* gst-libs/gst/codecparsers/gsth264parser.c:
	* tests/check/libs/h264parser.c:
	  gsth264parser: fix uint32 to int32 truncation
	  The H264 parser is using int32 to compute the framerate numerator and
	  denominator while the SPS block holding the original values used for
	  this computation are stored on uint32. On corner cases it may lead to a
	  truncation of the final values leading to an invalid framerate.
	  This patch is shifting right the numerator and denominator until both
	  values may be stored on int32. It may introduce a small computation
	  error with odd values but negligeable taking into account the huge
	  initial values > max_int32.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9967>

2025-10-31 15:00:35 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	* ext/tflite/gsttfliteinference.c:
	  tflite+onnx: Remove Effect from the klass
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-26 12:48:20 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Guess the planar nature instead of setting it manually
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-26 12:14:00 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Use GstVideoInfo directly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-26 11:07:00 +0000  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Redirect ONNX-Runtime level to GStreamer logs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 16:23:13 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Set ONNX logging from GStreamer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 16:04:24 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.c:
	  onnxinference: Push ERROR on the bus when returning GST_FLOW_ERROR
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 15:51:51 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstml.h:
	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.c:
	* ext/onnx/gstonnxinference.cpp:
	* ext/onnx/meson.build:
	  onnxinference: Port to C
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-25 12:11:01 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	  onnx: Remove template with C macro for conversion
	  Import the code from TfLiteInference for now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:43:43 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tflite: Factor out function guessing the type from the tensor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:33:00 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	  onnx: Simplify structure member setting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:18:22 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tfliteinference: Remove object instance from conversion function
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 18:03:15 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	  onnx: Remove usage of C++ string
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 17:52:22 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	  onnx: Remove usage of C++ vector
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-22 16:48:37 +0100  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  onnxinference: Use C OnnxRT API instead of C++ API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9911>

2025-10-31 17:20:31 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* gst-libs/gst/mpegts/gst-scte-section.c:
	  scte-section: fix resource leak in splice component parsing
	  Free the `component` buffer in the error path of `gst_scte_section_parse()`
	  to prevent a memory leak when an error occurs after allocation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9964>

2025-10-26 16:11:43 +0000  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	  vkav1dec: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-26 16:11:00 +0000  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkav1dec.c:
	* ext/vulkan/vkav1dec.h:
	  vkav1dec: clean headers and code-style fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-08 15:37:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	* ext/vulkan/vkvp9dec.h:
	  vkvp9dec: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-06 17:05:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh265dec.c:
	* ext/vulkan/vkh265dec.h:
	  vkh265dec: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:33:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh264dec.h:
	* ext/vulkan/vkh264enc.c:
	* ext/vulkan/vkh264enc.h:
	  vkh264XXX: dynamically generated pads templates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:31:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvkvideocaps.c:
	* ext/vulkan/gstvkvideocaps.h:
	* ext/vulkan/meson.build:
	  gstvkvideocaps: dynamic caps generator for pad templates
	  Implement gst_vulkan_physical_device_codec_caps() to query Vulkan video
	  capabilities and generate appropriate GStreamer caps for supported codecs. This
	  includes support for H.264, H.265 decode and encode operations, and VP9 and AV1
	  decode operations.
	  The implementation builds video profiles for each codec and iterates through
	  possible chroma subsampling and bit depth combinations to determine supported
	  configurations. For each valid configuration, it generates both codec-specific
	  caps (like video/x-h264) and corresponding raw video output caps with
	  Vulkan image memory feature.
	  Also handles special cases and sets appropriate stream formats for different
	  codecs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-23 14:09:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: add gst_vulkan_video_try_configuration()
	  This is a refactoring of encoder and decoder helper classess, taking out common
	  code from both that queries a vulkan physical device given a video operation
	  profile. That query returns the hardware capabilities for that profile.
	  By taking out from encoder and decoder helper classes this common query to a
	  physical devices to a gst_vulkan_try_configuration(), this function can be
	  reused for the caps template generation for vulkan video elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-26 16:22:31 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: add film grain field in caps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-07 17:37:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: improve H.265 profile handling
	  In order to determine the H.265 GStreamer profile, it's required to consider the
	  chroma subsampling and the chroma/luma bit depth and compare them with a list of
	  possible profile strings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-08 17:34:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: fail _to_caps() if no gstreamer profile
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-07 19:36:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: break loops when profile is found
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:24:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/gstvulkanelement.c:
	  vulkan: export common debug category
	  So it can be used along all the plugin registy process.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-07 14:42:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: add missing vulkan video formats
	  These formats are used by Vulkan video decoders and encoders.
	  In Vulkan Specification (1.4.330), in section 53.1.6 "Representation and Texel
	  Block Size", it says:
	  […] The in-memory ordering of bytes within a component is determined by the
	  host endianness.
	  Then there's a macro that will do that conversion in compilation time.
	  Those new color formats don't have color conversion logic yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:21:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkerror.c:
	  vkerror: add video profile errors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-09-25 19:20:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils-private: H.264 profile baseline is constrained-baseline
	  In the Vulkan Specification (v 1.4.330) in sections 45.12.3 and 45.21.6, "H264
	  Decode Profile" and "H.264 Encode Profile" respectively, it says:
	  […] enum constant STD_VIDEO_H264_PROFILE_IDC_BASELINE identifies the
	  Constrained Baseline profile as defined in A.2.1.1 of the ITU-T H.264
	  Specification […]
	  This patch fix that in our mapping structure which assumed baseline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9748>

2025-10-27 20:46:40 +0000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: support demuxing ID3 metadata
	  Output timed ID3 metadata frames. Mark packets
	  that start a new ID3 frame as keyframes, using the
	  PES data_alignment header flag.
	  Based on a patch by Sebastían Benítez Díaz <sebastianbd95@gmail.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7645>

2025-10-30 11:56:59 +0100  Ruben Sanchez <rsanchez@fluendo.com>

	* tests/check/elements/nvenc.c:
	  nvenc: Update test resolutions for modern NVIDIA GPUs
	  Modern NVIDIA GPUs (RTX 20xx, 30xx, 40xx series) have minimum
	  resolution requirements of 160x64. Update test resolutions from
	  64x64/128x128 to 320x320/640x640 to support these GPUs.
	  The original values were causing caps negotiation failures with
	  GST_FLOW_NOT_NEGOTIATED on modern hardware.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9952>

2025-10-30 11:56:34 +0100  Ruben Sanchez <rsanchez@fluendo.com>

	* tests/check/elements/nvenc.c:
	  nvenc: Fix typo in resolution_change_common using to_width for height
	  When changing resolution in the test, the height caps field was
	  incorrectly set using to_width instead of to_height parameter.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9952>

2025-10-16 20:31:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: fix return error in raw to buffer method
	  The return value of _copy_frames() is boolean, while the return value
	  of _raw_to_buffer_perform() is GstFlowReturn. By casting it, it returns
	  a wrong value.
	  This patch returns GST_FLOW_ERROR if _copy_frames() fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9957>

2025-10-29 11:29:46 +0100  Tulio Beloqui <tulio@pexip.com>

	* sys/mediafoundation/gstmfcapturedshow.cpp:
	  mfcapturedshow: fix for top-down RGB images
	  The documentation for BITMAPINFOHEADER states that: For uncompressed
	  RGB bitmaps, if biHeight is positive, the bitmap is a bottom-up DIB
	  with the origin at the lower left corner. If biHeight is negative, the
	  bitmap is a top-down DIB with the origin at the upper left corner.
	  Also make sure the height in the caps is always positive.
	  Tested against the NVIDIA Broadcast virtual camera.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9950>

2025-10-26 16:06:26 +0000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: Split large non-video PES packets
	  MPEG-TS PES packets have a maximum payload size of 65535 bytes
	  (including the header bytes). For larger incoming payloads,
	  split them into maximum-size PES packets. Video packets are
	  allowed to be unbounded
	  When breaking incoming buffers across PES packet payloads, only
	  the first should carry the incoming PTS/DTS
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9925>

2025-10-26 16:06:26 +0000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: Use some named constants instead of hard-coded values
	  Make some code a bit more readable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9925>

2025-10-28 11:40:20 +0900  JihoonLee <ejihoon.lee@lge.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: add debug logs for various stream handling cases
	  Add GST_DEBUG_OBJECT statements in the default cases of switch statements
	  to improve traceability when handling unexpected GstH264NalUnitType,
	  MPEG-TS stream types, JPEG2000 color specifications.
	  - scan_keyframe_h264: Log NAL unit type for non-slice cases
	  - create_pad_for_stream: Log unsupported stream types
	  - color specification handling: Log unrecognized color specs
	  No functional changes introduced, only enhanced debugging capabilities.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9928>

2025-10-29 14:17:28 +0900  jeongmin kwak <jeongmin.kwak@lge.com>

	* sys/v4l2codecs/gstv4l2decoder.c:
	  v4l2codecs: Free sub-request on allocation failure
	  If gst_vec_deque_pop_head() returns NULL, a new GstV4l2Request is allocated.
	  Free it on MEDIA_IOC_REQUEST_ALLOC failure to avoid memory leak.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9944>

2025-10-28 00:47:57 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/openaptx/openaptx-plugin.c:
	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecs/gstmpeg2decoder.c:
	  bad: Annotate unused functions/variables when checks/asserts disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9931>

2025-10-23 15:43:10 +0900  JihoonLee <ejihoon.lee@lge.com>

	* gst/videoparsers/gsth265parse.c:
	  h265parse: Add debug logging for unknown H.265 values
	  Add GST_DEBUG logging for unrecognized H.265 parser values to improve
	  diagnostic capability when processing unsupported or malformed streams:
	  - gst_h265_parse_process_sei(): log unknown SEI payload types
	  - gst_h265_parse_update_src_caps(): log unknown chroma format IDs
	  - gst_h265_parse_pre_push_frame(): log unknown sei_pic_struct values
	  These debug statements help identify issues with non-standard H.265 stream
	  configurations during parsing.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9889>

2025-10-25 14:24:19 +0100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsdemux/pesparse.c:
	  mpegtsdemux: Use some named constants instead of hard-coded values
	  Make some code a bit more readable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9921>

2025-05-16 09:26:49 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifierdecoder: Support tensors that don't need softmax
	  In some models, the softmax function has already been performed, so no
	  need to do it in the GStreamer code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8995>

2025-10-09 14:50:13 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Unlock sctp elements during disposal
	  Not doing so would lead to critical warnings. It could happen if webrtcbin is
	  teared down while it has a data-channel awaiting to preroll.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9823>

2025-10-09 14:43:46 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcbin.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: Optional support for async tasks
	  This seems needed mostly for the add-ice-candidate-full signal where the promise
	  is passed down to the ICE implementation. In this context the promise reply will
	  usually be notified from the ICE backend which in some situations has to perform
	  an asynchronous name resolution for the host supplied in the candidate SDP.
	  Covered by a test that negotiates an Offer/Answer and then attempts to add an
	  ICE candidate containing an invalid MDNS candidate address.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9823>

2025-01-17 18:32:13 -0300  Daniel Almeida <daniel.almeida@collabora.com>

	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkav1dec.c:
	* ext/vulkan/vkav1dec.h:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	  vulkan: add av1 decode element
	  Co-authored-by: Stephane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8316>

2025-10-25 13:10:48 +0100  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Create background thread with normal priority
	  The background thread would be idle in most time and it does not
	  perform any time critical task. Create the thread explicitly
	  outside of our I/O thread so that default priority to be
	  assigned
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9895>

2025-10-25 18:50:16 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	  vkvp9dec: fix dpb_size calculation
	  Remove useless checks in _find_next_slot_idx
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9904>

2025-10-25 16:14:49 +0100  He Junyan <junyan.he@intel.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Fix duplicated frames issue in frame splitting
	  This fix a bug where we append two frames into one buffer despite trying to
	  split stream into unique frames.
	  Fixes #4701
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9901>

2025-10-25 14:18:47 +0100  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	  d3d12swapchainsink: Fix flickering after resize
	  Mark as it was resized correctly so that next render cycle can be
	  processed as intended
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9897>

2025-10-14 14:01:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: split video device and instance functions
	  Load and use device functions are faster and attached to a specific device.
	  Nevertheless, physical device functions belong to instance.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-14 13:57:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vkvideo-private: remove unused function pointer
	  vkCmdPipelineBarrier2KHR isn't used because it was integrated into
	  GstVulkanOperation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 17:48:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vk{decoder,encoder}-private: use new physical device functions
	  Rather than loading the functions pointers by the helper classes themselves.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 16:46:41 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: add gst_vulkan_physical_device_get_video_capabilities()
	  The function will return TRUE if vkGetPhysicalDeviceVideoCapabilitiesKHR
	  function is available and it ran correctly. If so, the pcaps
	  structure (VkVideoCapabilitiesKHR) is filled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 16:27:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkerror.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: add gst_vulkan_physical_device_get_video_formats()
	  This function will return a GArray of VkVideoFormatPropertiesKHR elements given
	  the image usage and a pointer to a VkVideoProfileInfoKHR structure.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 14:43:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: add gst_vulkan_physical_device_get_format_properties()
	  This function will try to use the latest way to fetch the format's properties.
	  It can be called multiple times so it's better to keep it as function attached
	  to the object.
	  The function still uses gst_vulkan_instance_get_proc_address() instead of
	  gst_vulkan_device_get_proc_address() because, logically, physical device is in
	  between of the instance and the device.
	  In other to keep the code compatible with several Vulkan versions, we added a
	  private result structure: GstVulkanFormatProperties.
	  In gstvkformat, instead of loading the function every time, this new function
	  is called from GstPhysicalDevice object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 14:39:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: enable physical device extensions
	  These extensions are potentially used by gst_vulkan_format_from_video_info_2()
	  but since they aren't loaded with the conditions are met, basic fallback are
	  used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-10-13 14:37:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: fix verification function calling
	  The code only checked if the function was set, but it didn't actually call the
	  function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9837>

2025-04-01 14:46:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: Only reset once both pads are done flushing
	  Since reset also removes the blocking pad probe, this meant that the
	  new mechanism only worked if the main pads received flush-stop first.
	  Keep both pad implementation symmetrical and reset once both pads
	  have received the event.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8759>

2025-10-16 14:34:48 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/mpegtsmux/tsmux/tsmux.c:
	  tsmux: Reset PUSI flag after writing stream packet
	  Otherwise we might accidentally set it on a PCR-only packet when we pad
	  the stream on a subsequent write.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9857>

2024-09-21 00:53:11 +0200  Michael Grzeschik <m.grzeschik@pengutronix.de>

	* sys/uvcgadget/gstuvcsink.c:
	  uvcgadget: always ensure to switch to fakesink
	  In the case we transition the uvcsink to toggle between ready and
	  playing we have to ensure to always switch between fakesink and
	  v4l2sink.
	  Using the already linked v4l2sink a second time does curr ntly not work
	  when we restart the stream and therefor switch to streaming again.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7574>

2025-08-25 21:39:27 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test: Test GstAnalyticsTensorMtd
	  - Verify add GstAnalyticsTensorMtd to GstAnalyticsRelationMeta and retrieve it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7959>

2024-07-17 12:24:11 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/analytics.h:
	* gst-libs/gst/analytics/gstanalyticstensormtd.c:
	* gst-libs/gst/analytics/gstanalyticstensormtd.h:
	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/analytics/meson.build:
	  analytics: adding tensor mtd
	  - GstAnayticsTensorMtd can store GstTensor and describe relation with other Mtd
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7959>

2025-10-16 11:35:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/rist/gstristsink.c:
	  ristsink: Fix double free regression
	  The rtpext element was leaked in error path and fixed in MR !9756, but the
	  rtpext owner ship is later passed to a bin using gst_bin_add(). Ref-sync the
	  rtpext element so we can unref it in finalize() function without any special
	  cases.
	  Fixes #4707
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9858>

2025-10-15 11:38:29 +0200  David Maseda Neira <david.maseda@cinfo.es>

	* ext/x265/gstx265enc.c:
	  x265enc: Calculate latency based on encoder parameters
	  Estimate latency based on lookahead queue depth + bframes + number of
	  encoding threads.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4697
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9849>

2025-10-14 09:12:47 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.h:
	  Revert "doc: python: Document PyGObject overrides for core GStreamer"
	  This reverts commit 81f5440159ca43194e98327e42bdd6a48e946d69.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9840>

2025-10-04 15:14:31 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/cuda/gstcudabufferpool.h:
	* gst-libs/gst/insertbin/gstinsertbin.h:
	* gst-libs/gst/transcoder/gsttranscoder.h:
	* gst-libs/gst/va/gstvaallocator.h:
	* gst-libs/gst/va/gstvapool.h:
	* gst-libs/gst/vulkan/gstvkfence.h:
	* gst-libs/gst/vulkan/gstvkswapper.h:
	  gst: Add G_GNUC_WARN_UNUSED_RESULT to constructors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9796>

2025-09-11 14:24:25 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/avtpcrfcheck.c:
	* tests/check/elements/avtpcrfsync.c:
	* tests/check/elements/camerabin.c:
	* tests/check/elements/cccombiner.c:
	* tests/check/elements/fdkaac.c:
	* tests/check/elements/h264timestamper.c:
	* tests/check/elements/h266parse.c:
	* tests/check/elements/id3mux.c:
	* tests/check/elements/pnm.c:
	* tests/check/elements/rtponvifparse.c:
	* tests/check/elements/webrtcbin.c:
	* tests/check/libs/insertbin.c:
	* tests/check/libs/mse.c:
	* tests/check/libs/play.c:
	* tests/check/libs/vkvideoencodeav1.c:
	  bad: tests: convert g_assert() to g_assert_*() and mark unused items
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9788>

2025-09-11 14:22:03 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/avtp/gstavtpaafdepay.c:
	* ext/avtp/gstavtpaafpay.c:
	* ext/avtp/gstavtpbasedepayload.c:
	* ext/avtp/gstavtpcrfbase.c:
	* ext/avtp/gstavtpcrfsync.c:
	* ext/avtp/gstavtpcrfutil.c:
	* ext/avtp/gstavtpcvfdepay.c:
	* ext/avtp/gstavtpcvfpay.c:
	* ext/avtp/gstavtprvfdepay.c:
	* ext/avtp/gstavtprvfpay.c:
	* ext/closedcaption/gstcea608mux.c:
	* ext/dash/gstmpdclient.c:
	* ext/dtls/gstdtlssrtpdec.c:
	* ext/dtls/gstdtlssrtpenc.c:
	* ext/webrtc/gstwebrtcbin.c:
	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.c:
	* gst-libs/gst/codecparsers/gsth265bitwriter.c:
	* gst-libs/gst/mse/gstsourcebuffer.c:
	* gst-libs/gst/wayland/gstwlbuffer.c:
	* gst/debugutils/gsttestsrcbin.c:
	* gst/id3tag/id3tag.c:
	* gst/netsim/gstnetsim.c:
	* gst/rtmp2/rtmp/amf.c:
	* gst/rtmp2/rtmp/rtmpconnection.c:
	* gst/rtmp2/rtmp/rtmpmessage.c:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp9enc.c:
	  bad: mark items that are unused when checks or asserts are disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9788>

2025-03-24 06:36:26 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecs/gsth266decoder.c:
	  h266decoder: suppport vvc1 and vvi1 modes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8662>

2025-03-24 06:36:07 +0100  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	  h266parser: implement identify and split nalu
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8662>

2025-10-14 14:21:26 +0800  Shengqi Yu (喻盛琪) <shengqi.yu@mediatek.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  waylandsink: increase wait time for configure event
	  the timeout 100ms adding in merge request
	  https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/365 for wait config event
	  may be not enough. if there are a series of weston client running or CPU loading is high(stress test),
	  the 100ms appear time out probabilistically. this will result in gstwldisplay thread go wrong.
	  So, here increase the timeout time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9838>

2025-10-03 18:43:03 +0200  stevn <3381023+stevn@users.noreply.github.com>

	* sys/applemedia/avsamplevideosink.m:
	* sys/applemedia/coremediabuffer.c:
	* sys/applemedia/corevideobuffer.c:
	* sys/applemedia/helpers.c:
	* sys/applemedia/vtdec.c:
	* sys/applemedia/vtenc.c:
	  applemedia: add P010_LE support to eg vtenc_hw
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9789>

2025-10-09 08:09:33 +0200  Branko Subasic <branko.subasic@axis.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Properly check if pads are EOS in find_best_pad
	  In find_best_pad(), when checking if a pad is EOS we use the macro
	  GST_PAD_IS_EOS. But the aggregator pads will not propagate EOS received
	  on it's sinkpads until it has received EOS on all of them. Instead the
	  EOS event is put in the queue, which means that GST_PAD_IS_EOS will
	  return FALSE.
	  This makes find_best_pad() fail to find a best pad when all but one sink
	  pad has received EOS, and have no data left in their queues, and the
	  last one has data. The problem is solved by modifying find_best_pad() to
	  use gst_aggregator_pad_is_eos() instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9803>

2025-10-08 14:05:07 +0200  Branko Subasic <branko.subasic@axis.com>

	* ext/closedcaption/gstcea608mux.c:
	  cea608mux: Properly check if pads are EOS in find_best_pad
	  In find_best_pad(), when checking if a pad is EOS we use the macro
	  GST_PAD_IS_EOS. But the aggregator pads will not propagate EOS received
	  on it's sinkpads until it has received EOS on all of them. Instead the
	  EOS event is put in the queue, which means that GST_PAD_IS_EOS will
	  return FALSE.
	  This makes find_best_pad() fail to find a best pad when all but one sink
	  pad has received EOS, and have no data left in their queues, and the
	  last one has data. The problem is solved by modifying find_best_pad() to
	  use gst_aggregator_pad_is_eos() instead.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9803>

2025-10-07 12:25:07 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Fix a use-after-free and a mem leak
	  `new_candidate` was freed too early and `new_addr` wasn't freed in case of early
	  return from the on_candidate_resolved function.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9808>

2025-10-03 03:13:25 +0000  Abd Razak, Muhammad Azizul Hazim <muhammad.azizul.hazim.abd.razak@intel.com>

	* sys/va/gstvaav1enc.c:
	  vaav1enc: add upscaledwidth value for SCC encoding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9783>

2025-09-29 17:43:06 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3dvideosink/d3dhelpers.c:
	  d3dvideosink: Port to gst_call_async
	  The previous implementation was wrong in a way that passing
	  element class as if it's element, as well as device reset handling
	  itself seems to be wrong though, removing use of deprecated API.
	  The d3dvideosink is not a recommended videosink anyway
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 16:57:30 +0900  Seungha Yang <seungha@centricular.com>

	* sys/ipcpipeline/gstipcpipelinesink.c:
	* sys/ipcpipeline/gstipcpipelinesrc.c:
	  ipcpipeline: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 16:54:26 +0900  Seungha Yang <seungha@centricular.com>

	* gst/debugutils/gsttestsrcbin.c:
	  testsrcbin: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-09-29 16:53:14 +0900  Seungha Yang <seungha@centricular.com>

	* ext/openjpeg/gstopenjpegdec.c:
	* ext/openjpeg/gstopenjpegenc.c:
	  openjpeg: Port to gst_object_call_async
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/869>

2025-10-05 14:56:35 -0400  Xavier Claessens <xclaessens@netflix.com>

	* data/meson.build:
	  meson: Add missing devenv values
	  Those are the differences spotted between:
	  - meson devenv -C builddir --dump meson.env
	  - ./gst-env.py --only-environment > gst.env
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9800>

2025-07-08 01:07:33 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/hip/gsthip-enums.cpp:
	* gst-libs/gst/hip/gsthip-enums.h:
	* gst-libs/gst/hip/gsthip-gl.h:
	* gst-libs/gst/hip/gsthip-interop-gl.h:
	* gst-libs/gst/hip/gsthip-interop.cpp:
	* gst-libs/gst/hip/gsthip-interop.h:
	* gst-libs/gst/hip/gsthip-private.h:
	* gst-libs/gst/hip/gsthip.h:
	* gst-libs/gst/hip/gsthip_fwd.h:
	* gst-libs/gst/hip/gsthipbufferpool.cpp:
	* gst-libs/gst/hip/gsthipbufferpool.h:
	* gst-libs/gst/hip/gsthipdevice.cpp:
	* gst-libs/gst/hip/gsthipdevice.h:
	* gst-libs/gst/hip/gsthipevent.cpp:
	* gst-libs/gst/hip/gsthipevent.h:
	* gst-libs/gst/hip/gsthiploader.cpp:
	* gst-libs/gst/hip/gsthiploader.h:
	* gst-libs/gst/hip/gsthipmemory.cpp:
	* gst-libs/gst/hip/gsthipmemory.h:
	* gst-libs/gst/hip/gsthiprtc.cpp:
	* gst-libs/gst/hip/gsthiprtc.h:
	* gst-libs/gst/hip/gsthipstream.cpp:
	* gst-libs/gst/hip/gsthipstream.h:
	* gst-libs/gst/hip/gsthiputils-private.h:
	* gst-libs/gst/hip/gsthiputils.cpp:
	* gst-libs/gst/hip/gsthiputils.h:
	* gst-libs/gst/hip/hip-gst-gl.h:
	* gst-libs/gst/hip/hip-gst.h:
	* gst-libs/gst/hip/hip-prelude.h:
	* gst-libs/gst/hip/meson.build:
	* gst-libs/gst/hip/stub/cuda.h:
	* gst-libs/gst/hip/stub/cudaD3D11.h:
	* gst-libs/gst/hip/stub/cudaGL.h:
	* gst-libs/gst/hip/stub/driver_types.h:
	* gst-libs/gst/hip/stub/hip/driver_types.h:
	* gst-libs/gst/hip/stub/hip/hip_gl_interop.h:
	* gst-libs/gst/hip/stub/hip/hip_runtime.h:
	* gst-libs/gst/hip/stub/hip/hip_runtime_api.h:
	* gst-libs/gst/hip/stub/hip/hiprtc.h:
	* gst-libs/gst/hip/stub/hip/nvidia_hip_runtime_api.h:
	* gst-libs/gst/hip/stub/hip/texture_types.h:
	* gst-libs/gst/meson.build:
	* sys/hip/gsthipbasefilter.h:
	* sys/hip/gsthipcompositor.cpp:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipconverter.h:
	* sys/hip/gsthipmemorycopy.cpp:
	* sys/hip/gsthipmemorycopy.h:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	  hip: Move core methods to gst-libs
	  Make core GstHip methods public so applications can access
	  GstHip-produced resources directly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9340>

2025-10-03 16:56:47 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	  vkvp9dec: fix resolution change NULL pointer dereference
	  Add early return when output_state is not yet initialized in
	  _check_resolution_change(). This occurs during early stream
	  initialization before output_state is set up.
	  Resolution change detection is safely skipped since coded dimensions
	  match frame header dimensions during stream init, making renegotiation
	  unnecessary at this stage.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9786>

2025-09-22 12:53:31 -0300  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.h:
	  doc: python: Document PyGObject overrides for core GStreamer
	  Add comprehensive documentation for Python-specific functionality
	  provided by PyGObject overrides in core GStreamer classes including:
	  - Bin: make_and_add helper method and multi-element add() support
	  - Buffer/Memory: context manager support for map operations
	  - Caps: constructor overrides and container protocol support
	  - Clock: TIME_ARGS utility function
	  - Element: link_many static method
	  - ElementFactory: convenience metadata getters and classmethod make()
	  - Iterator: Python iteration protocol support
	  - MiniObject: make_writable and flags property
	  - Structure: dictionary-like access and constructor overrides
	  - TagList: container protocol support
	  Documentation is placed in the appropriate C function documentation
	  where overrides enhance existing functionality, or in class-level
	  SECTION documentation for new helper methods.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9717>

2025-09-03 19:07:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: remove unused code
	  When the encoder is open, codedbuf_size cannot be zero or less.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9747>

2025-09-03 18:13:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaencoder.c:
	  vaencoder: use gst_clear_object()
	  Instead of gst_clear_pointer(), even though gst_clear_object() is a macro
	  that uses gst_clear_pointer() let's keep the semantics.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9747>

2025-09-03 06:44:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/va/gstvaallocator.c:
	* gst-libs/gst/va/gstvaallocator.h:
	* gst-libs/gst/va/gstvapool.c:
	* gst-libs/gst/va/gstvapool.h:
	  va: remove unusable public macros
	  Since GstVaDmabufAllocator, GstVaAllocator and GstVaPool structures aren't
	  public it's impossible to use the glib macros for data type checking. They
	  were moved to the c code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9747>

2025-09-26 22:20:08 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/gsthiputils.h:
	  hip: Fix loading of HIP libraries on Linux
	  We shouldn't need the development packages to dlopen the HIP
	  libraries. Also look for HIP 7.0 in System32 on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9749>

2025-09-10 21:30:50 +0300  anonymix007 <48598263+anonymix007@users.noreply.github.com>

	* tests/examples/vulkan/meson.build:
	* tests/examples/vulkan/sdl3_vulkandec.c:
	  examples: Add SDL3 Vulkan Renderer interop example
	  Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9677>

2025-09-19 12:43:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: always enable YCBCR conversion extension
	  It always needs to be enable to use it.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9677>

2025-09-25 08:39:47 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/analytics/gstanalyticssegmentationmtd.h:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/audio/gstnonstreamaudiodecoder.h:
	* gst-libs/gst/audio/gstplanaraudioadapter.h:
	* gst-libs/gst/codecs/gstav1picture.h:
	* gst-libs/gst/codecs/gsth264decoder.h:
	* gst-libs/gst/codecs/gsth264picture.h:
	* gst-libs/gst/codecs/gsth265decoder.h:
	* gst-libs/gst/codecs/gsth265picture.h:
	* gst-libs/gst/codecs/gsth266picture.h:
	* gst-libs/gst/codecs/gstmpeg2picture.h:
	* gst-libs/gst/codecs/gstvp8picture.h:
	* gst-libs/gst/codecs/gstvp9picture.h:
	* gst-libs/gst/cuda/gstcudacontext.h:
	* gst-libs/gst/cuda/gstcudamemory.h:
	* gst-libs/gst/cuda/gstcudamemorypool.h:
	* gst-libs/gst/cuda/gstcudastream.h:
	* gst-libs/gst/mpegts/gst-atsc-section.h:
	* gst-libs/gst/mpegts/gst-dvb-section.h:
	* gst-libs/gst/mpegts/gst-scte-section.h:
	* gst-libs/gst/mpegts/gstmpegtsdescriptor.h:
	* gst-libs/gst/mpegts/gstmpegtssection.h:
	* gst-libs/gst/mse/gstmediasource.h:
	* gst-libs/gst/mse/gstsourcebuffer.h:
	* gst-libs/gst/mse/gstsourcebufferlist.h:
	* gst-libs/gst/play/gstplay-signal-adapter.h:
	* gst-libs/gst/play/gstplay-visualization.h:
	* gst-libs/gst/play/gstplay.h:
	* gst-libs/gst/player/gstplayer-visualization.h:
	* gst-libs/gst/player/gstplayer.h:
	* gst-libs/gst/transcoder/gsttranscoder-signal-adapter.h:
	* gst-libs/gst/transcoder/gsttranscoder.h:
	* gst-libs/gst/va/gstvadisplay_drm.h:
	* gst-libs/gst/va/gstvadisplay_wrapped.h:
	* gst-libs/gst/vulkan/gstvkbufferpool.h:
	* gst-libs/gst/vulkan/gstvkcommandbuffer.h:
	* gst-libs/gst/vulkan/gstvkcommandpool.h:
	* gst-libs/gst/vulkan/gstvkdescriptorcache.h:
	* gst-libs/gst/vulkan/gstvkdescriptorpool.h:
	* gst-libs/gst/vulkan/gstvkdescriptorset.h:
	* gst-libs/gst/vulkan/gstvkdevice.h:
	* gst-libs/gst/vulkan/gstvkdisplay.h:
	* gst-libs/gst/vulkan/gstvkfence.h:
	* gst-libs/gst/vulkan/gstvkfullscreenquad.h:
	* gst-libs/gst/vulkan/gstvkhandle.h:
	* gst-libs/gst/vulkan/gstvkimagebufferpool.h:
	* gst-libs/gst/vulkan/gstvkimagememory.h:
	* gst-libs/gst/vulkan/gstvkimageview.h:
	* gst-libs/gst/vulkan/gstvkinstance.h:
	* gst-libs/gst/vulkan/gstvkoperation.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.h:
	* gst-libs/gst/vulkan/gstvkqueue.h:
	* gst-libs/gst/vulkan/gstvkswapper.h:
	* gst-libs/gst/vulkan/gstvktrash.h:
	* gst-libs/gst/vulkan/gstvkvideofilter.h:
	* gst-libs/gst/vulkan/gstvkwindow.h:
	* gst-libs/gst/vulkan/wayland/gstvkdisplay_wayland.h:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/icestream.h:
	* gst-libs/gst/webrtc/rtcsessiondescription.h:
	  bad: Add G_GNUC_WARN_UNUSED_RESULT to funcs with transfer full returns
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9771>

2025-09-28 10:19:26 +0100  Philippe Normand <philn@igalia.com>

	* ext/wpe2/gstwpedisplay.cpp:
	* ext/wpe2/gstwpethreadedview.cpp:
	* ext/wpe2/meson.build:
	  wpe2: Require wpewebkit >= 2.50
	  The API slightly changed since 2.48 and also the WPEPlatform lib is now part of
	  libWPEWebKit, so there's no need to check it anymore during the meson setup.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9758>

2025-09-26 16:58:38 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudanvrtc.cpp:
	  cuda: Fix runtime kernel compile with CUDA 13.0
	  Instead of hardcoded value, checks compute compatibility at runtime
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4655
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9745>

2025-09-24 15:33:02 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/audio/gstplanaraudioadapter.c:
	  gst: fixes
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9766>

2025-09-29 14:44:32 -0400  Xavier Claessens <xclaessens@netflix.com>

	* ext/svtjpegxs/meson.build:
	* sys/aja/meson.build:
	  meson: Remove "allow_fallback: true" from non essential deps
	  It means that if that dependency is not found on the system, and the
	  corresponding feature option is set to "auto", it won't build the
	  fallback subproject.
	  This reduces size and build time of default build.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9767>

2025-09-22 12:00:32 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Directly forward Opus AUs without `opus_control_header`
	  ffmpeg does the same, assuming that it's raw Opus data.
	  ZLMediaKit is producing MPEG-TS like this and probably nobody ever noticed
	  because ffmpeg allows for this, so let's work around their bugs and handle it
	  the same way as ffmpeg.
	  See https://github.com/ZLMediaKit/ZLMediaKit/issues/4461
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4645
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9719>

2025-09-25 22:42:12 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/lv2/gstlv2utils.c:
	* ext/teletextdec/gstteletextdec.c:
	* gst/rist/gstristsink.c:
	* gst/rist/gstristsrc.c:
	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/uvcgadget/gstuvcsink.c:
	  gst: Fix a few small leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9756>

2025-09-05 11:49:55 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* ext/wayland/gstwaylandsink.c:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: handle flush stop event
	  when got flush seek, waylandsink will re-preroll.
	  if next_buffer and staged_buffer are both NOT-NULL,
	  gst_wl_window_render will return FALSE. and preroll
	  will fail.
	  this patch clear staged_buffer for flush_stop event, make
	  sure preroll success
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9642>

2025-09-17 08:38:48 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Protect against too small window
	  Fix protocol error due to 0 sized destination. When the compositor decides we
	  should render to a really small window such as 1x1, the inner rectangle for the
	  video surface may endup with a width or height of 0, which is a protocol error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-17 08:37:43 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Move commit outsite of the video resize helper
	  This is a minor cleanup that helps readability by removing a boolean parameter
	  from the function. No functional change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-17 08:34:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/wayland/gstwaylandsink.c:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: Open toplevel fullscreen window on the selected output
	  Adds a new helper to create a toplevel that is configured to fullscreen on the
	  selected output immediately. This also allow selecting the fullscreen-output
	  when using the fullscreen shell protocol.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-08 15:55:35 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Delay the render rectangle once the surface is configured
	  Updating the surface before sending the configure ack results in bad window
	  placement. Handle this situation like if the window is being created by
	  unsetting the configured flag.
	  Once we acked the configuration, always update the geometry, which ensure we
	  have a commit after that event regardless if anything dimensions changed or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-08 15:53:58 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Flush the queue after sending fullscreen command
	  Flushing the queue allow for immediate changes. This is needed to ensure the
	  switch from/to fullscreen, or changing display happens in paused state.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-08 10:44:47 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Trace the configured top level surface state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 15:04:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	  waylandsink: Add a fullscreen-output property
	  New property that let you specify which output to fullscreen to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 15:02:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  wayland: window: Allow to fullscreen on a specific output
	  This add a new method that allow to fullscreen the window on a specific
	  displaty. This can be useful for simple application that just want to render
	  fullscreen and have multiple possible outputs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 15:00:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	* gst-libs/gst/wayland/gstwldisplay.h:
	  wayland: display: Enumerate wl_output
	  Catch  wl_output global object and using its listener gather all the wl_output
	  information and store them by name into a hashmap. The GstWlOutput can be
	  obtained by name using a new function in the GstWlDisplay API.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-05 14:58:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwloutput-private.h:
	* gst-libs/gst/wayland/gstwloutput.c:
	* gst-libs/gst/wayland/gstwloutput.h:
	* gst-libs/gst/wayland/meson.build:
	* gst-libs/gst/wayland/wayland.h:
	  wayland: Add object to store wl_output information
	  This is a gobject that can be used to store all the information about a
	  wl_output. The setters are private, while the getters are public. Thread safety
	  should be done by maintaining a ref count on the object during reads.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9653>

2025-09-24 19:26:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudaconvertscale.c:
	  cudaconvert: Fix crop meta support
	  When in/output caps are identical, even if downstream didn't propose
	  pool, always respond to support crop meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9734>

2025-09-24 19:37:00 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12convert.cpp:
	  d3d12convert: Fix crop meta support
	  When in/output caps are identical, even if downstream didn't propose
	  pool, always respond to support crop meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9735>

2025-09-17 11:17:59 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/isoff/gstisoff.c:
	  isoff: fix fall through warnings
	  The compiler since !8229 checks
	  fallthroughs, explicitly add
	  G_GNUC_FALLTHROUGH to tell that
	  this is expected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9703>

2025-09-09 10:12:00 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttflitevsiinference.c:
	  tflitevsiinference: Replace renamed API
	  The renamed API wasn't actually the one we wanted, replace it with
	  the correct one.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9731>

2025-09-11 15:29:08 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcencoder/gstlcevch266enc.c:
	* ext/lcevcencoder/gstlcevch266enc.h:
	* ext/lcevcencoder/meson.build:
	* ext/lcevcencoder/plugin.c:
	  lcevcencoder: Add lcevch266enc element
	  This new element allows encoding LCEVC H.266 video.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9705>

2025-09-23 20:29:11 +0200  David Maseda Neira <david.maseda@cinfo.es>

	* sys/nvcodec/gstnvh264encoder.cpp:
	  nvcodec: Ensure interlace is used only when required and supported
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9730>

2025-09-23 09:06:09 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  tsmux: Write a full Opus channel configuration if no matching Vorbis one is found
	  Instead of simply failing negotiation despite the stream being supported.
	  Without this the following pipeline will fail:
	  audiotestsrc is-live=true ! audio/x-raw,channels=8 ! opusenc ! mpegtsmux ! fakesink
	  opusenc selects the Vorbis channel layout family but a channel-mapping that is
	  not one of the ones supported by the short MPEG-TS Opus channel configurations.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9729>

2025-08-11 13:56:14 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: In the presence of tracking Mtd, draw different colors
	  It will create one color per track, trying to use colors which are as different
	  as possible from each other. There is a property to control that behaviour.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9538>

2025-08-11 13:55:49 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: Remove unused variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9538>

2025-08-11 11:29:11 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: Add option to not draw tracking labels
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9538>

2025-09-22 10:09:48 +0800  Cheah, Vincent Beng Keat <vincent.beng.keat.cheah@intel.com>

	* sys/va/gstvacompositor.c:
	  vacompositor: Correct scale-method properties
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9718>

2025-09-08 17:50:32 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/closedcaption/gstcea608mux.c:
	* gst/audiomixmatrix/gstaudiomixmatrix.c:
	* gst/debugutils/gsttestsrcbin.c:
	  gst: Don't use g_assert() around production code
	  If G_DISABLE_ASSERT is defined the code will not be compiled.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9662>

2025-09-16 19:00:47 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/isac/meson.build:
	  isac: Suppress warning about -Wno-virtual-dtor on Fedora
	  The absl pkgconfig files on Fedora contain -Wnon-virtual-dtor in
	  Cflags: even though pc files should not contain -W flags. Worse, our
	  plugin is written in C but that's a C++ argument so GCC emits
	  a warning about that.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9695>

2025-09-03 17:16:38 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkvideoencodeav1.c:
	  vulkan: fix AV1 encode test with TILE_GROUP
	  Add support for GST_AV1_OBU_TILE_GROUP.
	  For example RADV generates frame with two OBUs
	  such as FRAME_HEADER + TILE_GROUP when
	  nvidia generated only FRAME OBU.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9631>

2025-09-16 16:38:22 -0700  Xavier Claessens <xclaessens@netflix.com>

	* gst/unixfd/gstunixfd.c:
	* tests/check/elements/unixfd.c:
	  unixfd: Fix case of buffer with big payload
	  In the case a buffer has big meta serialization, for example if it
	  contains a GstBuffer, the payload cannot be sent/received in a single
	  call.
	  Idealy we should serialize metas into a memfd in that case, instead of
	  writing the data on the socket.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9701>

2025-08-29 12:13:58 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* tests/check/libs/vkvideodecode.c:
	  vkdecoder: enable INLINE_PARAMS in the decoder
	  GST_VULKAN_DECODER_FEATURE_INLINE_PARAMS should enable
	  VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR
	  in the decoder session creation.
	  Add new api gst_vulkan_decoder_has_feature and keep
	  `features` private.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9616>

2025-08-29 12:12:24 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* tests/check/libs/vkvideodecode.c:
	  vkdecoder: fix typo and rename MAINTENANCE2 feat
	  The feature GST_VULKAN_DECODER_FEATURES_VIDEO_MAINTEINANCE2
	  has been renamed to GST_VULKAN_DECODER_FEATURE_INLINE_PARAMS
	  to clarify the use of this feature in the rest of the code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9616>

2025-09-16 18:01:35 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	  d3d12overlaycompositor: Fix leak and improve passthrough
	  Allow buffer passthrough when the composition meta
	  contains no rectangles
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9693>

2025-09-16 17:35:17 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12overlayblender.cpp:
	  d3d12overlayblender: Rectangle upload optimization
	  Removed GList usage and reworked upload logic
	  to reduce overhead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9693>

2025-09-16 15:24:22 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12deinterlace.cpp:
	  d3d12deinterlace: Fix passthrough handling
	  Don't try to convert buffer when passthrough is enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9691>

2025-09-03 11:32:19 -0400  Xavier Claessens <xclaessens@netflix.com>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	* ext/vulkan/vkoverlaycompositor.c:
	* sys/d3dvideosink/d3dhelpers.h:
	* sys/d3dvideosink/d3dvideosink.c:
	* sys/d3dvideosink/gstd3d9overlay.c:
	* sys/dwrite/gstdwriteoverlayobject.cpp:
	  GstVideoOverlayCompositionMeta: Fix multiple composition meta usage
	  This deprecates gst_buffer_get_video_overlay_composition_meta() and
	  stops using it. The reason is a buffer could have multiple composition
	  metas, and each of them can have multiple rectangles. Sinks and
	  compositor elements must iterate over all metas instead of assuming
	  there is only one.
	  Discourage usage of gst_video_overlay_composition_make_writable() and
	  gst_video_overlay_composition_copy() in documentation. Instead of
	  modifying upstream's composition meta, overlay elements should add their
	  own meta. This avoids texture cache invalidation in sinks and compositor
	  elements that keep a ref of GstVideoOverlayRectangle objects.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7627>

2025-09-12 17:31:01 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3dshader/gstd3dshadercache.cpp:
	* gst-libs/gst/d3dshader/gstd3dshadercache.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_full.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_full_premul.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_limited.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/PSMain_sample_bgra_to_vuya_limited_premul.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/hlsl.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/meson.build:
	* sys/d3d12/gstd3d12overlayblender.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.cpp:
	* sys/d3d12/gstd3d12overlaycompositor.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Add overlay compositor element
	  Introduce a new d3d12overlaycompositor element
	  that blends GstVideoOverlayCompositionMeta attached to input buffers
	  onto output D3D12 textures
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9683>

2025-09-12 17:48:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12overlayblender.cpp:
	* sys/d3d12/gstd3d12overlayblender.h:
	* sys/d3d12/gstd3d12overlaycompositor.h:
	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* sys/d3d12/gstd3d12window-swapchain-resource.h:
	* sys/d3d12/gstd3d12window-swapchain.cpp:
	* sys/d3d12/gstd3d12window.cpp:
	* sys/d3d12/meson.build:
	  d3d12: Change overlay blending helper object name
	  Change the name to overlaycompositor to overlayblender
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9683>

2025-09-11 20:57:34 +0900  Seungha Yang <seungha@centricular.com>

	  d3d12: Add interlace element
	  Add a new interlace element using D3D12 compute shaders,
	  providing the same behavior as the software interlace element.
	  Currently supported patterns:
	  * 1:1 (60p -> 60i), generating half the number of output frames
	  * 2:2 (30p -> 60i), implemented as passthrough with buffer flag update
	  only
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9680>

2025-09-09 21:55:08 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Auto-select IAudioClient3 and pick shared-mode period
	  Use IAudioClient3 in shared mode when the requested latency-time
	  is below the engine default period even if low-latency is
	  not explicitly requested.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9666>

2025-09-09 19:30:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	  wasapi2: Probe device period and report via device provider
	  Report IAudioClient::GetDevicePeriod() and IAudioClient3::GetSharedModeEnginePeriod()
	  values
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9666>

2025-09-09 19:31:39 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Fix shared mode caps report in device provider
	  Build shared mode caps using corresponding IAudioClient,
	  not default device
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9666>

2025-09-12 21:35:58 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12memory-private.h:
	* gst-libs/gst/d3d12/gstd3d12memory.cpp:
	* sys/dwrite/gstdwriterender_d3d12.cpp:
	  dwrite: Fix D3D12 critical warning
	  When using convert + blend mode, the final render target resource
	  is also used as a source resource owned by our fence data storage.
	  As a result, the resource may not be writable if the conversion
	  command has not yet finished. To address this, add a private
	  method that allows setting the fence without a writability check
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9681>

2025-09-13 20:04:06 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12memorycopy.cpp:
	  d3d12upload, d3d12download: Use internal staging pool
	  When copying between system memory and a D3D12 resource,
	  if the non-D3D12 buffer is not backed by D3D12 staging memory
	  (e.g. use-staging-memory is disabled or upstream provides
	  its own buffer pool), fall back to the internal staging
	  memory pool. The staging pool enables batched copies, which
	  is more efficient than copying each GstD3D12Memory object
	  individually in a GstBuffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-13 20:34:30 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12memorycopy.cpp:
	  d3d12upload, d3d12download: Add use-staging-memory property
	  Since the maximum allocatable staging memory size is about half of the
	  total system memory, we might run out of available staging memory earlier
	  than system memory. This adds a property to allow choosing the preferred
	  memory target for upload/download
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-05 20:18:43 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* sys/d3d12/gstd3d12videosink.cpp:
	  d3d12videosink, d3d12swapchainsink: Port to gst_d3d12_buffer_copy_into()
	  Use copy helper function to support both uploading from system
	  memory and staging memory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-05 19:52:25 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12download.cpp:
	* sys/d3d12/gstd3d12download.h:
	* sys/d3d12/gstd3d12memorycopy.cpp:
	* sys/d3d12/gstd3d12upload.cpp:
	* sys/d3d12/gstd3d12upload.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Maintain only single upload/download implementation
	  Remove ones that for d3d11 disabled, and use #ifdef in a single source
	  file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-05 18:05:24 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12memorycopy.cpp:
	  d3d12download, d3d12upload: Add support for staging memory
	  * Use newly implemented staging memory for upload/download
	  operations to to allow copying from/to resources
	  on the D3D12 default heap directly without an extra copy
	  using system memory
	  * Add 'queue-type' property to let users select the preferred
	  command queue type for copy command execution
	  In addition to removing the extra copy via staging memory,
	  copy commands can also be batched into a single command list
	  in case of non-DXGI-native multi-plane formats, such as I420.
	  This can result in up to 3x faster copy performance.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-05 16:31:15 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12frame.cpp:
	* gst-libs/gst/d3d12/gstd3d12frame.h:
	* gst-libs/gst/d3d12/gstd3d12utils.cpp:
	* gst-libs/gst/d3d12/gstd3d12utils.h:
	  d3d12: Add new gst_d3d12_frame_copy varient methods
	  Allow user to specify command queue to use
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-09-02 21:13:44 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12.h:
	* gst-libs/gst/d3d12/gstd3d12_fwd.h:
	* gst-libs/gst/d3d12/gstd3d12stagingbufferpool.cpp:
	* gst-libs/gst/d3d12/gstd3d12stagingbufferpool.h:
	* gst-libs/gst/d3d12/gstd3d12stagingmemory.cpp:
	* gst-libs/gst/d3d12/gstd3d12stagingmemory.h:
	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Add staging memory implementation
	  Add GstD3D12StagingMemory and GstD3D12StagingBufferPool
	  that can be used for temporary storage of GPU processed data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9648>

2025-08-27 14:24:43 +0100  Philippe Normand <philn@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/webrtc/gstwebrtcbin.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: Add a close signal
	  This is a partial implementation of the close procedure defined in
	  https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-close
	  Most notably the transceiver stopping procedure is not supported because it
	  doesn't fit properly within our transceiver implementation.
	  Fixes #2760
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9379>

2025-07-12 13:12:06 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Implement close API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9379>

2025-07-12 13:11:32 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	  webrtc: ice: Add close API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9379>

2025-09-05 22:40:57 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Prefer QUAD over 3.1 for 4ch layout
	  ... and add missing 3, 5, and 7ch layout fallback.
	  QUAD is more common 4ch configuration than 3.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9649>

2025-09-05 22:38:26 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Preserve channel mask from device/mix format
	  Ensure that the channel mask from the mix format (shared mode) or
	  PKEY_AudioEngine_DeviceFormat (exclusive mode) is inherited by
	  generated format candidates for consistency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9649>

2025-09-07 20:39:44 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.2

=== release 1.27.2 ===

2025-09-07 20:34:55 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.27.2

2025-09-06 11:08:47 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/sndfile/gstsfdec.c:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vksink.c:
	* ext/vulkan/vkupload.c:
	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/transportreceivebin.c:
	* ext/webrtc/transportsendbin.c:
	* gst-libs/gst/mse/gstappendpipeline.c:
	* gst-libs/gst/play/gstplay.c:
	* gst-libs/gst/transcoder/gsttranscoder.c:
	* gst/rtp/gstrtpsink.c:
	* gst/rtp/gstrtpsrc.c:
	* sys/androidmedia/gstamcvideodec.c:
	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/ipcpipeline/gstipcpipelinecomm.c:
	* sys/ipcpipeline/gstipcpipelinesink.c:
	* sys/ipcpipeline/gstipcpipelinesrc.c:
	* sys/uvcgadget/gstuvcsink.c:
	* tests/check/elements/adaptive_demux_common.c:
	* tests/check/elements/mpegtsmux.c:
	* tests/check/elements/webrtcbin.c:
	* tests/examples/camerabin2/gst-camerabin2-test.c:
	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	* tests/examples/inter/gstintertest.c:
	* tests/examples/ipcpipeline/ipc-play.c:
	* tests/examples/mediafoundation/mfvideoenc-dynamic-reconfigure.c:
	* tests/examples/nvcodec/nvcodec.c:
	* tests/examples/webrtc/webrtc.c:
	* tests/examples/webrtc/webrtcbidirectional.c:
	* tests/examples/webrtc/webrtcrenego.c:
	* tests/examples/webrtc/webrtcswap.c:
	* tests/examples/webrtc/webrtctransceiver.c:
	* tests/examples/wpe/wpe.c:
	  gst: Change usage of gst_element_state_*() to gst_state_*()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9655>

2025-09-01 11:30:46 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Add support for exclusive mode mute control
	  In case that IAudioStreamVolume interface is unavailable such as
	  exclusive mode, control the mute state by using AUDCLNT_BUFFERFLAGS_SILENT
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9624>

2025-09-01 10:49:37 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Handle device init error on acquire()
	  Don't post error if IAudioClient::Initialize() got failed but
	  continue-on-error is enabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9624>

2025-09-05 08:25:22 +0200  Ola Fornander <ola.fornander@axis.com>

	* ext/curl/gstcurlsmtpsink.c:
	  curlsmtpsink: adapt to date formatting issue
	  In glib 2.73.1, padding for %e in gdatetime was changed from "space"
	  to the Unicode character (U+2007). This violates rfc5322 (Internet
	  Message Format), which states that a message shall be composed of
	  characters in the range of 1 through 127 and interpreted as US-ASCII
	  characters. Hence, when using g_date_time_format, it is necessary to
	  instead write %_e to enforce space padding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9639>

2025-09-04 09:37:18 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	  vkvideoutils: fix typo in vp9 profile map
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9638>

2025-08-25 12:39:05 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcencoder/gstlcevch265enc.c:
	* ext/lcevcencoder/gstlcevch265enc.h:
	* ext/lcevcencoder/meson.build:
	* ext/lcevcencoder/plugin.c:
	  lcevcencoder: Add lcevch265enc element
	  This new element allows encoding video into H265 LCEVC streams. It follows the
	  same design as lcevch264enc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9632>

2024-10-31 15:59:35 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/lcevcencoder/README.md:
	  lcevcencoder: Add ldconfig and install steps to the readme
	  Without ldconfig, the library isn't found at runtime!
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7805>

2025-09-02 11:32:18 +0100  Philippe Normand <philn@igalia.com>

	* tests/examples/inter/gstintertest.c:
	* tests/examples/inter/meson.build:
	* tests/examples/meson.build:
	  inter: Move intertest example to tests/examples/inter
	  Also fix a couple leaks, make it use playbin3, add URI command line argument
	  handling, use gst_print functions and remove dead code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9627>

2025-09-02 09:06:20 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/openh264/meson.build:
	  meson: Avoid pulling in gtest for openh264
	  Emits a big warning about wrapdbv1 and the updated wrap fails to build
	  on Windows. We don't need the tests anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9626>

2025-09-01 21:02:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/analyticsoverlay/meson.build:
	* ext/avtp/meson.build:
	* ext/codec2json/meson.build:
	* ext/iqa/meson.build:
	* ext/mdns/meson.build:
	* ext/openh264/meson.build:
	* ext/openjpeg/meson.build:
	* ext/qroverlay/meson.build:
	* ext/soundtouch/meson.build:
	* gst-libs/gst/webrtc/nice/meson.build:
	* meson.build:
	* sys/tinyalsa/meson.build:
	  meson: Convert all remaining fallback: usages to [provide]
	  Only commonly-used plugin deps like pango, orc, openh264, libvpx,
	  libnice are enabled by default.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1788
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9626>

2025-08-09 23:16:09 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudacompositor.cpp:
	  cudacompositor: Add support for crop meta
	  GstCudaConverter object can support cropping now
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 03:23:38 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstcudaconverter.cpp:
	* sys/nvcodec/gstcudaconvertscale.c:
	* sys/nvcodec/kernel/gstcudaconverter.cu:
	  cudaconvertscale: Add support for crop meta
	  Performs cropping based on upstream attached crop meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 03:55:49 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudamemory.cpp:
	* gst-libs/gst/cuda/gstcudamemory.h:
	  cudamemory: Add gst_cuda_allocator_alloc_stream_ordered() method
	  Allow stream ordered memory allocation without GstCudaBufferPool
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 03:53:29 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudamemory.cpp:
	  cudamemory: Add ARGB64 format support
	  The format will be used for intermediate data processing for now
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 03:50:08 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudamemory.h:
	  cudamemory: Add GST_MAP_{READ,WRITE}_CUDA macro
	  Instead of casting the alias
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-09 02:30:34 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudamemory.cpp:
	  cudamemory: Add VUYA texture mapping
	  Support VUYA texture caching
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9523>

2025-08-22 14:01:44 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdecodebin.c:
	  lcevcdecodebin: Update the base decoder when setting base-decoder property
	  Currently, the base-decoder property only works when setting it while
	  constructing the element, but does not work if we set the property after
	  constructing the element. This patch fixes this issue so that the property
	  can be set with gst-launch-1.0. Note that the property can only be set if
	  the element is in NULL state.
	  Fixes #4594
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9599>

2025-05-28 17:23:27 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkvp9dec.c:
	  vkvp9dec: dpb pool created with vulkan caps max coded size
	  The dpb pool should be created with the max supported size
	  to avoid a dpb pool recreation on resize event.
	  When the pool is destroyed during resolution changes, previously decoded
	  reference frames stored in the DPBs are lost, which can cause decoding
	  errors or corruption when those reference frames are needed for
	  inter-frameprediction at different resolutions. By sizing the pool for
	  the maximum supported resolution upfront, we ensure reference frame
	  continuity across resolution changes.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-07-08 11:44:18 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkvp9dec.c:
	* ext/vulkan/vkvp9dec.h:
	  vulkan: add vp9 decode element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-03-26 17:29:55 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkcodecparams_vp9.c:
	* tests/check/libs/vkvideodecode.c:
	  tests: add vp9 vulkan video decode
	  This test allows to decode one key frame
	  and one inter frame
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-03-26 15:20:14 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	* gst-libs/gst/vulkan/meson.build:
	  vulkan: add vp9 decode support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9204>

2025-05-28 16:12:07 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	  vkdecoder-private: manage existing dpb pool
	  When the decoder wants to recreate the dpb pool
	  on resize event for example, an existing dpb pool
	  might exist, so it should be kept if the caps
	  are equal or destroy for new caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9614>

2025-08-26 20:17:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	  vulkanh26xdec: fix discont state handling
	  It fixes a couple tests in fluster for H.265 decoding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9610>

2025-07-15 11:15:56 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/elements/vkcolorconvert.c:
	* tests/check/elements/vkdeviceprovider.c:
	* tests/check/elements/vkupload.c:
	* tests/check/libs/vkcommandpool.c:
	* tests/check/libs/vkdevice.c:
	* tests/check/libs/vkformat.c:
	* tests/check/libs/vkimage.c:
	* tests/check/libs/vkimagebufferpool.c:
	* tests/check/libs/vkinstance.c:
	* tests/check/libs/vkmemory.c:
	* tests/check/libs/vkvideodecode.c:
	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	* tests/check/libs/vkwindow.c:
	  vulkan: tests: remove/update ci comments
	  Since previous commit, the CI can now run vulkan
	  tests. Remove or update the comments related to CI.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9416>

2025-07-11 18:04:04 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/gst-plugins-bad.supp:
	  ci: enable vulkan tests in validate
	  As CI now supports llvm 18 and mesa 24.1 which
	  allow to use properly lavapipe in the CI, the vulkan
	  ci tests have been removed from the validate blacklist.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9416>

2025-08-25 09:44:01 +0800  Vivian LEE <vivian.lee@harmonicinc.com>

	* ext/x265/gstx265enc.c:
	* ext/x265/gstx265enc.h:
	  x265: Fix duplicate SEI at startup IDR frame problem
	  x265 encoder_headers return headers with SEI after encoding the frame,
	  while the output frame also contains SEI so two identical header
	  blocks appeared.
	  Cache the headers at init, leaving only a single copy in the stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9604>

2025-08-20 15:32:15 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	  gst: Convert `is_writable()` / `make_writable()` macros to inline functions
	  Plus actual functions that are exported from the library.
	  Apart from improving type-safety, this also makes bindings more happy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9588>

2025-08-22 14:20:36 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensordecoders: fix wrong assumption in ultralightfacedetectortensordec
	  - UltraLightFaceDetection was assmuming only one TensorMeta could be attach to
	  buffer. We need to look at all TensorMeta attach to the buffer and check for
	  the one it support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9564>

2025-08-17 15:58:22 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	  analytics: always add GstTensorMeta
	  Always add GstTensorMeta to buffer instead of re-using existing GstTensorMeta
	  when it's already present. The reason for the change is when we have cascaded
	  inference elements overwriting (tflite) or leaking (ONNX) GstTensorMeta when we
	  have cascaded inferences. We didn't create and API to append to GstTensorMeta
	  and I think it's more convenient to have a new GstTensorMeta for each
	  inferences. It's also more clear that a group of tensor was produced by one
	  inference but doesn't limit tensordecoders from using tensors produced by
	  multiple inference. I don't see much value in having all tensors data always
	  inside one GstTensorMeta since appending would mean re-allocation of the tensors
	  array anyway.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9564>

2025-08-22 13:09:31 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Add support for format negotiation
	  Enumerate supported formats during open so that src/sink can
	  report them via get_caps(). The format is then fixated and
	  initialized on acquire(), allowing users to select their
	  preferred format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-22 08:26:11 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Enumerate supported shared mode formats
	  ... and report it via device provider property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-22 09:22:02 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Workaround for S24_32LE format mismatch
	  Since Windows 24bit-in-32bit format is not supported
	  by GStreamer (Windows one is MSB-aligned), converts format
	  in ringbuffer using SSE2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 18:14:35 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Demote S24_32LE in exclusive-mode format ordering
	  Some endpoints accept 24-bit in 32-bit PCM (S24_32LE) in exclusive mode
	  but playback at very low volume. Until the root cause is identified,
	  push S24_32LE to the end of the candidate list
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 12:02:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Add support for exclusive mode device switching
	  Because of APO/OS mixer bypass in exclusive mode, we should
	  convert samples if new device has different format.
	  The conversion with additional buffering is implemented in this patch
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 12:03:54 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Fix process loopback device init
	  Fix AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM flag usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 06:56:27 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2rbuf.h:
	* sys/wasapi2/gstwasapi2sink.cpp:
	* sys/wasapi2/gstwasapi2src.cpp:
	  wasapi2: Add support for exclusive mode
	  Add "exclusive" property and try exclusive mode streaming
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-20 03:47:08 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2: Probe exclusive mode formats
	  ... and report it via device provider props
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586>

2025-08-08 16:46:48 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkvideoencodeav1.c:
	* tests/check/meson.build:
	  tests: add vulkan AV1 encode test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8841>

2024-12-17 18:49:22 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	  vulkan: add basic AV1 encode support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8841>

2025-08-19 07:48:59 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdecutils.c:
	* ext/lcevcdecoder/gstlcevcdecutils.h:
	  lcevcdec: Support all available formats
	  RGB and GRAY formats are only placeholders in LCEVCDec and therefore are not
	  supported yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-08-18 10:26:55 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdecutils.c:
	  lcevcdec: Remove unneeded LCEVC 2.0.0 workaround
	  This is not needed anymore as the min version for LCEVCdec is 4.0.1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-08-18 09:50:48 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/gstlcevcdec.h:
	* ext/lcevcdecoder/gstlcevcdecutils.c:
	  lcevcdec: Handle pixel aspect ratio and crop size correctly
	  LCEVCdec supports different pixel aspect ratios other than 1/1. This change
	  forwards the pixel aspect ratio of the base picture to the LCEVC decoder,
	  and also updates the output pixel aspect ratio caps base on the one from the
	  enhanced frame.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-07-29 15:22:39 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/gstlcevcdec.h:
	  lcevcdec: Peek the decoder for output resolution
	  The output resolution is not always twice as big as the input resultion divided
	  by the pixel aspect ratio. This is the case for LCEVC '0D' mode, where the
	  output resolution is the same as the input resolution, and the only enhancement
	  is the picture being clearer.
	  This patch uses LCEVC_PeekDecoder() after sending the LCEVC enhancement data to
	  know what the output resolution will be before allocating the output picture.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-07-30 15:19:42 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/gstlcevcdecutils.c:
	* ext/lcevcdecoder/gstlcevcdecutils.h:
	  lcevcdec: Fix LCEVC picture access flags
	  Even though the LCEVC decoder works fine without this, it is recommended to
	  set read access to base pictures that are sent to the decoder, and write access
	  to enhanced pictures that are received from the decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-07-30 15:19:26 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	  lcevcdec: Fix width type typo
	  This was always meant to be gint instead of gint32.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9463>

2025-08-20 14:24:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/meson.build:
	* tests/check/libs/vkvideodecode.c:
	  vulkan: enable video maintenance2 for inline session parameters
	  .. in decoders.
	  Inline session parameters allows to not create session parameters handlers for
	  every new stream parameters (such as SPS and PPS for H.264, for example), but
	  instead to pass them as a chained structure in the decoding main structure. This
	  is completely align with GStreamer decoder base classes.
	  Even that the previous approach is kept, if the devices doesn't support video
	  maintenance2, it shows a lot of validation errors.
	  Also it was required to add another parameter when enabling extension to verify
	  if the extension is linked with a device feature and if it is enabled.
	  Bump Vulkan API (and driver version for both decoders and encoders) to 1.4.306
	  Also bumped the ABI_CHECK_TAG because the CI finally catches up with the vulkan
	  video symbols that are not exposed by a public header (tough they are binary
	  public).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9585>

2025-08-20 14:29:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	  vkvideo-private: remove unused guards
	  Since this file is compiled only if vulkan video support is enabled with the
	  proper vulkan headers version.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9585>

2025-08-20 14:12:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: check for features when enabling extensions
	  Some extensions need to have enabled certain feature in the device. This patch
	  does that check by adding a new field in the extension list which is a function
	  that can be mapped to gst_vulkan_physical_device_has_feature_*() functions.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9585>

2025-08-20 20:01:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagesbufferpool: another usage for non-independent profile flag
	  Fix validation issue VUID-VkImageCreateInfo-flags-08329 on old RADV hardwware.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9591>

2025-08-19 20:37:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh265dec.c:
	  vulkanh265dec: fix validation layer complain
	  Silence the validation VUID-VkImageMemoryBarrier2-srcAccessMask-03915
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9591>

2025-08-19 11:15:29 +0100  Ian Napier <ian@digitaledgesubsea.com>

	* sys/decklink/gstdecklink.h:
	* sys/decklink/gstdecklinkvideosrc.cpp:
	  decklinkvideosrc: fix decklinkvideosrc becomes unrecoverable if it fails to start streaming
	  See #2611
	  When transitioning to PLAYING we call IDeckLinkInput::StartStreams() (via GstDecklinkInput::start_streams). This can
	  fail for various reasons, including if the hardware device is already in use.
	  Previously, we logged StartStreams() failure as an element error but otherwise continued to successfully transition to
	  PLAYING. Now, if StartStreams() returns an error we fail the state change.
	  If StartStreams() fails then a subsequent call to StopStreams(), when transitioning PAUSED to READY, will also fail.
	  Previously, if StopStreams() failed then the state change also failed. Unfortunately this prevented the element from
	  later being disposed, which in turn meant the associated hardware resources was never freed. Consequently, if a
	  decklinkvideosrc failed to transition PAUSED to READY, then the associated hardware device could not subsequently be
	  used by any other decklinkvideosrc.
	  Now, we log an element error if StopStreams() fails but otherwise consider the state change to have succeeded. This
	  means that the element can be disposed and the associated hardware resource released.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9578>

2025-08-18 14:17:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: don't use independent profile flag for some usage
	  VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR, among others, needs the video profile
	  to use.
	  The patch clears the validation issue  VUID-VkImageCreateInfo-flags-08331
	  This is a continuation of !9550
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9570>

2025-08-18 11:00:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	  tests: fix queues for vulkan h26x encoders
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9571>

2025-08-15 13:02:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	  vulkanh26xdec: fix debug category name
	  This is a regression from merge request !78011
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9560>

2025-08-15 12:06:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	  vulkanh26xdec: re-negotiate after FLUSH
	  Vulkan decoders also have the same issue as VA decoders fixed in !9457, where
	  FLUSH event doesn't renegotiate downstream the pipeline.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9560>

2025-08-13 14:54:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: support video profile independent images
	  With video_maintenance1 extension is possible to create images independent of a
	  the video profile list, under that image will be processed.
	  With that extension is possible to share the same image for dynamic transcoding.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9550>

2025-08-14 15:55:41 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* tests/check/elements/cccombiner.c:
	  tests: cccombiner: Test durationless buffers
	  Crashes without the previous fix.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>

2025-07-17 14:40:47 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/closedcaption/gstcccombiner.c:
	  cccombiner: Don't crash when first frame has no duration
	  Aggregate again so the code above can determine the end time or EOS.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>

2025-07-17 14:29:07 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/closedcaption/gstcccombiner.c:
	  cccombiner: Avoid dividing by zero framerate
	  This was broken in b29262e662b86cd76225894f7504ee505125fa49.
	  The `gst_util_uint64_scale` emitted a critical warning and returned
	  `GST_CLOCK_TIME_NONE`, so beyond removing the warning this fix does not
	  change behavior.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9415>

2025-08-14 03:03:50 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Warm up capture audio client on open
	  If the endpoint is idle, the first IAudioClient::Start() call
	  may take a long time to return. Start/stop the capture client
	  on open to reduce latency of subsequent Start() calls.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9553>

2025-08-13 03:13:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2sink: Do not push too large preroll buffer to endpoint
	  To avoid startup glitches, a silent buffer is pushed to
	  render endpoint, but pushing too large silent buffer will
	  introduce unnecessary latency. Limit it to a single period worth data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9553>

2025-08-13 16:39:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	  vkdecoder-private: fix mistake from !9531
	  This was a very silent mistake.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9552>

2025-08-13 16:38:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vk{decoder,encoder}-private: use API to check device version
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9552>

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

	* tests/check/libs/vkimagebufferpool.c:
	  test: vkimagebufferpool: silence validation
	  The validation complained with
	  VUID-VkImageCreateInfo-usage-requiredbitmask]:
	  vkCreateImage(): pCreateInfo->usage is zero.
	  This patch force to use the internal defaults in vkimagebufferpool if no usage
	  is defined.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9544>

2025-08-12 14:24:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: silence validation for features
	  With merge request !9438 the validation layer started to complain with
	  VUID-VkDeviceCreateInfo-pNext-02829
	  This patch fixes this ill-usage of Vulkan API, by removing the feature enabling
	  of sampler ycbcr conversion, since it was promoted since Vulkan 1.1, and in
	  GStreamer is only used in Vulkan Video operations, which are only enabled in
	  Vulkan 1.3+.
	  Also, these features detection and enabling were moved to a function called when
	  filling the physical device data, in order to check the API version of the
	  device driver before adding the enabling of the feature.
	  Finally, the getters were adapted to use the version feature structure if the
	  device driver version matches.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9544>

2025-08-12 14:24:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: fix regression from !9492
	  On commit 1a7f0f162726f07f5723e0c1f43f2c6725d07c80 a regression were introduced
	  by omitting to initialize the profileCount field.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9545>

2025-08-08 17:29:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: remove duplicated definition
	  They are already declared in gstvkvideo-private.h
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9531>

2025-08-08 17:22:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vulkan: remove spurious video extension checking
	  Since they are expected dependencies. If the specific codec extension is loaded,
	  that means that dependencies are loaded too.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9531>

2025-08-11 22:54:29 +1000  Jan Schmidt <jan@centricular.com>

	* ext/hls/m3u8.c:
	  hlsdemux: Fix parsing of byterange and init map directives
	  Don't reuse the same offset and size variables when reading
	  the byterange out of a MAP directive, as it can overwrite
	  values from a pending BYTERANGE directive for the next
	  fragment URI.
	  Fixes problems where the EXT-X-MAP directive has been written
	  into the playlist between an EXT-X-BYTERANGE and the fragment
	  URI it applies to.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9533>

2025-08-08 17:38:33 +0800  Qian Hu (胡骞) <qian.hu@mediatek.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	  waylandsink: add some error handler for event dispatch
	  if wl client got last_error, wl_display_dispatch_queue_pending
	  will return -1, may lead to unhandled case, we should quit.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9511>

2025-08-09 22:51:03 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2activator.cpp:
	  wasapi2: Tone down activation fail log
	  If there's no endpoint available, that failure is expected error
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9521>

2025-08-09 22:46:59 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Pass correct data flow value to GetDefaultAudioEndpoint()
	  Respect requested data flow value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9521>

2025-07-23 11:37:15 -0400  Xavier Claessens <xclaessens@netflix.com>

	* tests/check/elements/mpegtsmux.c:
	  mpegtsmux: Caps event fails with stream type change error
	  If mpegtsmux receives the same caps again, it wrongly claims the stream
	  type changed:
	  error: Stream type change from 06 to 8f not supported
	  This adds a unit test that demonstrate the issue in the very hacky way.
	  I have seen this happening with the below pipeline when upstream caps
	  changes. Since the caps filter fixates the caps received by opusenc and
	  mpegtsmux, the stream type cannot change.
	  ...
	  ! audioconvert
	  ! audio/x-raw,format=S16LE,channels=2,rate=48000
	  ! opusenc bitrate=128000
	  ! mpegtsmux
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9430>

2025-08-07 14:31:38 +1000  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Use 'internal' stream_type to detect codec changes
	  The TsMuxStream internal_stream_type field stores the original
	  'full' stream type (such as Opus), while the stream_type field
	  stores the value that will actually be written into the MPEG-TS
	  packets according to the codec mappings. When checking if
	  input caps are changing stream type, check the original type.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9430>

2025-08-08 22:30:52 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Fix default render device probing
	  Fixing typo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9517>

2025-07-31 11:31:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: detect and dump Vulkan 1.4 properties and features
	  In order to link videomaintenance1, and others to come, without knowing if
	  Vulkan 1.4 features are chained in the device properties structure, a static and
	  inlined function was added in gstvkphysicaldevice-private.h. It was added in a
	  header file to avoid compiler warnings if it's not used because of old Vulkan
	  headers.
	  Also the value dump videomaintenance1 was moved to another function to pack
	  there all the future features to query which aren't part of a Vulkan release
	  yet.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-07-31 13:48:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/gstvulkan.c:
	* gst-libs/gst/vulkan/gstvkdebug.c:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkformat.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vulkan: fine grained access to API
	  This patch is the payment to my technical debt.
	  The symbol GST_VULKAN_HAVE_VIDEO_EXTENSIONS is defined at compilation-time if
	  the user requests for the usage of the Vulkan Video extensions. And we used this
	  symbol for anything related with Vulkan Video. But this is not the smartest
	  approach.
	  The rule should be:
	  - If the code allocates Vulkan Video resources, use
	  GST_VULKAN_HAVE_VIDEO_EXTENSIONS
	  - Otherwise, use the Vulkan's guard for the used API
	  In this way, API version bumps will be easier.
	  Also, this commit marks the end of GST_VULKAN_HAVE_VIDEO_EXTENSIONS guarded code
	  for readability.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-08-04 15:11:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkoperation.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	  vkoperation: refactor for fine grained guards and clean ups
	  Added a static inlined function in gstvkphysicaldevice-private.h for looking up
	  a specific vulkan structure in a chain.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

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

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: refactor common code
	  Both gst_vulkan_image_buffer_pool_set_config() and
	  gst_vulkan_image_buffer_pool_alloc() functions share the same code to create
	  Vulkan images for different purposes.
	  This patch refactor them in a new helper function that creates the images and
	  stores them in a buffer if it's passed as output parameters, such as the
	  offsets.
	  This patch also adds specifics guards for Vulkan's symbols for better grained
	  API usage, but also for prepare_buffer() the guard is set where the symbol is
	  used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-07-31 13:19:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vkdevice: fine grained vulkan video extensions detection
	  The Vulkan Video extensions can be available, according to the specification,
	  since Vulkan 1.1, but with other extensions dependencies. That's why this patch
	  adds a field in the extension structure, which represents the extension
	  dependency that the specified extension requires. And they are specified by
	  Vulkan Video extensions.
	  This allow to have a single function to check if the extension can be enabled
	  both by optional extensions and video extensions.
	  Regardless that video extension can be loaded since Vulkan 1.1, they are rather
	  loaded since Vulkan 1.3, when synchronization2 was promoted, so it isn't
	  checked as video_queue dependency.
	  Finally, this patch checks for each guard symbol.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-08-04 12:11:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.c:
	* gst-libs/gst/vulkan/gstvkoperation.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	  vulkan: private functions for physical device features
	  This is a continuation of !9483, but without back-porting.
	  Instead of checking the driver's API version to figure out if a physical device
	  feature is available and enabled, or even more, instead of checking for enabled
	  extensions in the driver, this patch adds private functions in the physical
	  driver to get the availability and enabling of features such as sampler ycbrc
	  conversion, synchronization2, timeline semaphore and video maintenance1.
	  And these new functions are used internally in the GstVulkanOperation object,
	  and the private object GstVulkanDecoder.
	  This approach is computationally cheaper, simpler and precise.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9492>

2025-08-08 07:13:24 +0200  Jan Alexander Steffens (heftig) <heftig@archlinux.org>

	* tests/check/elements/zbar.c:
	  zbar: tests: Handle symbol-bytes as not null-terminated
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4592
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9510>

2025-07-21 03:41:05 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/svthevcenc/gstsvthevcenc.c:
	* ext/wayland/gstwaylandsink.c:
	* sys/winks/gstksclock.c:
	* sys/winks/gstksvideodevice.c:
	* sys/winks/gstksvideosrc.c:
	* sys/winks/ksdeviceprovider.c:
	* sys/winks/ksvideohelpers.c:
	* sys/winks/ksvideohelpers.h:
	  debug: Category init should happen in class_init when possible
	  plugin_init() will not get called if element/feature registration
	  happens manually, such as when using linking only specific plugin
	  features with gstreamer-full. That is possible when plugins contain
	  static features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9496>

2025-08-07 13:58:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/codecparsers/gstav1parser.c:
	  av1parser: Don't error out on "currently" undefined seq-level indices
	  They might very well be defined in the future and that shouldn't affect the
	  parsing in any way. Specifically, ffmpeg with `av1_nvenc` seems to create
	  `GST_AV1_SEQ_LEVEL_7_3` currently and parsing such streams would fail otherwise.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4589
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9502>

2025-06-30 13:34:47 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	* ext/lcevcdecoder/meson.build:
	  lcevcdec: Set LCEVCdec min version to 4.0.0 and fix build
	  V-Nova's LCEVCdec SDK 4.0.0 was released with a small API change. This patch
	  fixes the 'lcevcdec' element so that it builds with the new version. For more
	  information see:
	  https://github.com/v-novaltd/LCEVCdec/blob/4.0.0/docs/v4_migration_guide.md
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9414>

2025-08-04 16:56:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdecoder-private.h:
	* gst-libs/gst/vulkan/gstvkencoder-private.h:
	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	* gst-libs/gst/vulkan/gstvkvideo-private.h:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.c:
	* gst-libs/gst/vulkan/gstvkvideoutils-private.h:
	* gst-libs/gst/vulkan/meson.build:
	* gst-libs/gst/vulkan/vulkan.h:
	* gst-libs/gst/vulkan/vulkan_fwd.h:
	* tests/check/libs/vkimagebufferpool.c:
	* tests/check/libs/vkvideodecode.c:
	  vkvideoutils-private: make it private
	  Since we moved the GstVulkan generic decoder and encoder to private objects in
	  the library, there was not need to keep vkvideoutils public.
	  This patch turns it private and reduces the public API surface.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9493>

2025-08-05 01:51:14 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	  wasapi2: Always fallback to MMDevice if default device is unavailable
	  Automatic stream routing supported virtual device may not be
	  available for some reason, but can try default MMdevice
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-05 01:41:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2: Always probe default audio endpoint info
	  Regardless of GetActivateResult() return code, fill default
	  device information to device provider props
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-05 00:41:34 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2activator.cpp:
	* sys/wasapi2/gstwasapi2activator.h:
	  wasapi2: Handle GetActivateResult failure
	  Even if GetActivateResult() succeeded, activation result can fail.
	  Checks output HRESULT code as well
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-01 00:00:06 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2device.cpp:
	  wasapi2deviceprovider: Log device update details
	  ... and add wasapi2deviceprovider debug category
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-07-31 22:54:29 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2enumerator: Retry on IMMDevice::Activate failure
	  Since the sequence of IMMDeviceEnumerator::EnumAudioEndpoints()
	  followed by IMMDevice::Activate() is not atomic, Activate() may fail
	  if the enumerated device becomes invalidated before probing.
	  In such cases, retry device probing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-07-31 22:22:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	  wasapi2enumerator: Avoid racy device probing
	  IMMDeviceEnumerator may fire a series of callbacks even for a single
	  device plug/unplug event. To avoid redundant probing, start device
	  enumeration only after no further callbacks are received for 100ms.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-07-31 21:10:27 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	  wasapi2enumerator: Log IMMNotificationClient callback details
	  ... and add wasapi2enumerator debug category
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468>

2025-08-02 12:19:18 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/webrtcsdp.c:
	* tests/check/elements/webrtcbin.c:
	  webrtc: sdp: Validate ICE SDP attributes
	  According to https://datatracker.ietf.org/doc/html/rfc5245#section-15.4,
	  those attributes should contain only alpha-numerical (with / and + allowed),
	  should be less than 256 characters, the ufrag should be at least 4 characters
	  and the pwd should be at least 22 characters.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>

2025-08-02 08:55:05 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/webrtcsdp.c:
	* tests/check/elements/webrtcbin.c:
	  webrtc: sdp: Relax ice-ufrag and ice-pwd checks
	  According to RFC 8839 section 5.4, if two data streams have identical
	  "ice-ufrag"s, they MUST have identical "ice-pwd"s.
	  The previous code wasn't allowing different ice-ufrag values in bundled medias.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>

2025-08-02 08:54:37 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Set DTLS role and state on transport stats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9485>

2025-08-01 14:55:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkphysicaldevice-private.h:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	  vkphysicaldevice: enable sampler ycbcr, sync2 and timeline semaphore features
	  For the features VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR,
	  VkPhysicalDeviceSynchronization2Features and
	  VkPhisicalDeviceTimelineSemaphoreFeatures
	  The Vulkan specification states:
	  If the `VkPhysicalDeviceXXXFeatures` structure is included in the `pNext`
	  chain of the `VkPhysicalDeviceFeatures2` structure passed to
	  `vkGetPhysicalDeviceFeatures2`, it is filled in to indicate whether each
	  corresponding feature is supported. If the application wishes to use a
	  `VkDevice` with any features described by `VkPhysicalDeviceXXXFeatures`,
	  it **must** add an instance of the structure, with the desired feature members
	  set to `VK_TRUE`, to the `pNext` chain of `VkDeviceCreateInfo` when creating
	  the `VkDevice`.
	  And that was missing in the code.
	  Strangely, that functionality doesn't have a Valid-Usage ID assigned, so it
	  isn't caught by the validation layer.
	  This patch adds the structures in the physical devices to get them and later set
	  them in the device creation.
	  In order to link these features, videomaintenance1, and others to come, without
	  knowing if Vulkan 1.3 features are chained in the device properties structure, a
	  static and inlined function was added in gstvkphysicaldevice-private.h. It was
	  added in a header file to avoid compiler warnings if it's not used because of
	  old Vulkan headers.
	  Also the value dump videomaintenance1 was moved to another function to pack
	  there all these queried features.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9483>

2025-07-31 17:55:29 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/random/PORTED_09:
	  random: Remove historical doc
	  This is about porting which happened over 20 years ago.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-31 17:54:32 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/random/LICENSE:
	  random: Remove historical LICENSE header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-31 17:50:33 -0400  Olivier Crête <olivier.crete@collabora.com>

	* AUTHORS:
	  AUTHORS: Remove outdated files
	  They only contained historical contributors, the modern version is
	  to look at the git logs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-31 17:44:21 -0400  Olivier Crête <olivier.crete@collabora.com>

	* MAINTAINERS:
	  MAINTAINERS: Update to reflect current maintainership
	  Instead of listing everyone, just point to GitLab
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-07-31 17:39:44 -0400  Olivier Crête <olivier.crete@collabora.com>

	* REQUIREMENTS:
	  REQUIREMENTS: Remove outdated doc
	  They contained information which was completely outdated.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9476>

2025-08-01 11:52:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  vaXXXenc: fix potential race condition
	  VA encoders, at reconfiguration, have to check if the rate-control was changed
	  by the user, but since user parameters setting are in another thread, the
	  comparison was racy.
	  This patch locks the object to compare the current rate-control with the one set
	  by the user.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9480>

2025-02-26 03:41:21 +0000  Jonathan Lui <jonathan.ming.jun.lui@intel.com>

	* sys/va/gstvaav1enc.c:
	  vaav1enc: Enable intrablock copy and palette mode
	  This allow screen content coding (SCC) optimization feature.
	  Co-authored-by: Victor Jaquez <vjaquez@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8560>

2025-08-01 01:03:10 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12screencapturedevice.cpp:
	  d3d12screencapturedevice: Avoid false device removal on monitor reconfiguration
	  Post device-changed instead of device-removed/device-added when
	  only HMONITOR or display position changed without actual device change.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9472>

2025-02-11 18:59:04 -0500  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  analytics: Add unit test for copying GstAnalyticsRelationMeta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9475>

2025-03-06 18:08:22 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpbasepayload.c:
	  avtpbasepay: Add debug message for time handling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-03-06 18:08:04 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpbasepayload.c:
	  avtpbasepay: Make make constants more readable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-03-06 18:01:23 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpaafdepay.c:
	* ext/avtp/gstavtpbasedepayload.c:
	* ext/avtp/gstavtpbasedepayload.h:
	* ext/avtp/gstavtpcvfdepay.c:
	* ext/avtp/gstavtpsrc.c:
	* ext/avtp/gstavtpvfdepaybase.c:
	* tests/check/elements/avtpaafdepay.c:
	* tests/check/elements/avtpcvfdepay.c:
	  avtp: Use the DTS as the AVTP base time
	  Make it work a little more like RTP. Have the source interact with the
	  clock and set the capture time on each packet. Then the other elements
	  can use that to do adjustments. Since AVTP is always very low latency,
	  it can be assumed that the gPTP clock at the packet reception is very
	  close to the sending time, never more than 2 seconds off, so the
	  timestamps can be compared directly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-03-06 16:14:04 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpaafdepay.c:
	* ext/avtp/gstavtpbasedepayload.c:
	* ext/avtp/gstavtpbasedepayload.h:
	* ext/avtp/gstavtpcvfdepay.c:
	* ext/avtp/gstavtprvfdepay.c:
	  avtp: Use nicely abstracted process function in base depayloader class
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-02-07 16:18:14 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpbasepayload.c:
	  avtp: Intercept changes in the latency
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-02-07 13:33:48 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/avtp/gstavtpvfpaybase.c:
	  avtpvfpaybase: Don't require a caps handling method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9412>

2025-07-30 11:12:24 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  docs: Update documentation cache for new RGB 10bit support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>

2025-07-29 13:58:21 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlvideoformat.h:
	  waylandsink: Enable 10bit RGB for SHM buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9460>

2025-07-31 15:36:38 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Set MDI into the final caps
	  The MDI was being set in the original caps which is not even writable.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9474>

2025-03-05 11:02:55 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	* ext/onnx/meson.build:
	  onnx: Add Verisilicon provider
	  Add the option to use the VSI provider for the Verisilicon NPUs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9408>

2025-07-30 15:50:56 +0400  Marc-André Lureau <marcandre.lureau@redhat.com>

	* gst-libs/gst/d3d12/meson.build:
	* sys/d3d12/meson.build:
	  meson: d3d12: Add support for MinGW DirectXMath package
	  This is a similar issue that was found for d3d11:
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6495
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9464>

2025-07-30 16:19:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/base/gsth264encoder.c:
	  vulkanh264enc: calculate latency with corrected framerate
	  Fix for the h264encoder base class in the same spirit of !9437.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9465>

2025-07-24 14:31:26 +0300  Amotz Terem <amotzte@gmail.com>

	* sys/nvcodec/gstnvencoder.cpp:
	  nvcodec: Add emit-frame-stats signal
	  Add emit-frame-stats property to optionally emit frame stats on each frame
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9429>

2025-07-24 20:42:59 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/directsound/gstdirectsoundplugin.c:
	* sys/wasapi/gstwasapi.c:
	  windows: Disable all audio device providers except wasapi2
	  We have too many device providers outputting duplicate device entries,
	  and it's not clear to people what they should be using. Let's only
	  keep wasapi2 around since it is PRIMARY + 1.
	  After the device switching work done on WASAPI2, there is no reason to
	  use directsound anymore.
	  https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>

2025-07-24 20:20:39 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.build:
	  meson: Pass sysprof=disabled to glib
	  sysprof cannot be built on Windows, and this causes the build to fail
	  on Windows.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>

2025-07-24 20:19:00 +0100  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/dash/meson.build:
	* ext/smoothstreaming/meson.build:
	* ext/ttml/meson.build:
	  meson: Pass python=false to libxml2
	  We don't need this in gstreamer anyway.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4510
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9438>

2025-07-29 11:42:54 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvavp9dec.c:
	  vavp9dec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-29 11:42:44 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvajpegdec.c:
	  vajpegdec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-29 11:42:33 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvaav1dec.c:
	  vaav1dec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:52:22 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvabasedec.c:
	  vabasedec: Instrument negotiate function with debug statements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:49:36 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvabasedec.c:
	  vabasedec: Always chain to parent class negotiate vmethod
	  When the base videodecoder class re-attempts a negotiation after flush, the
	  vabasedec `need_negotiation` flag isn't necessarily set to TRUE, because in that
	  situation the input state hasn't changed.
	  By always chaining up we are sure that buffer pool negotiation will always be
	  attempted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:45:25 +0100  Philippe Normand <philn@igalia.com>

	* sys/va/gstvah264dec.c:
	  vah264dec: Spelling fix in warning debug statement
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-28 12:44:48 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/codecs/gsth264decoder.c:
	  h264decoder: Spelling fix in warning debug statement
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9457>

2025-07-24 16:41:35 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	  onnx: Add debug message with tensor id
	  Also downgrade input dimensions as it's shown on
	  each buffer.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9439>

2025-07-24 16:41:23 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdtensordecoder: Use tensor ids from the registry
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9439>

2025-07-10 15:19:02 -0500  Derek Foreman <derek.foreman@collabora.com>

	* gst/videoparsers/gstav1parse.c:
	  av1parse: Set CLL and MDI caps
	  We already parse the content-light-level and mastering-display-info data
	  from the stream, so propagate that into caps.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9445>

2025-07-25 08:59:31 -0500  Derek Foreman <derek.foreman@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: display: Scale whitepoint the same as the primaries
	  The whitepoint metadata also needs the same scale factor as the
	  display_primaries.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9444>

2025-07-25 09:31:08 -0500  Derek Foreman <derek.foreman@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Name the color management queue
	  Wayland debugging is easier if we use queue names.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9446>

2025-07-22 11:05:08 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevch265decodebin.c:
	* ext/lcevcdecoder/gstlcevch265decodebin.h:
	* ext/lcevcdecoder/gstlcevch266decodebin.c:
	* ext/lcevcdecoder/gstlcevch266decodebin.h:
	* ext/lcevcdecoder/meson.build:
	* ext/lcevcdecoder/plugin.c:
	  lcevcdecoder: Add lcevch265decodebin and lcevch266decodebin elements
	  Similar to lcevch264decodebin, these new elements are needed for LCEVC H265 and
	  H266 video streams to be decoded properly with autoplugging elements.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 11:02:00 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth266parse.c:
	  h266parse: Fix typo when finding compatible profiles
	  This solves some critical errors about not fixed caps with some H266 streams.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 10:56:55 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth266parse.c:
	  h266parse: Wait for SEI before exposing src caps
	  Similar to h264parse, this makes sure 'lcevc=false' src caps are not set before
	  parsing SEI. It is needed for decodebin2 to work properly with the LCEVC decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 10:56:30 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth265parse.c:
	* tests/check/elements/h265parse.c:
	  h265parse: Wait for SEI before exposing src caps
	  Similar to h264parse, this makes sure 'lcevc=false' src caps are not set before
	  parsing SEI. It is needed for decodebin2 to work properly with the LCEVC decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-22 10:47:20 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  codecparsersbad: Accept lcevc=false sink caps
	  This is needed if the LCEVC enhancement data is part of the video stream as SEI
	  and the demuxer outputs 'lcevc=false' src caps because LCEVC enhancement data is
	  not stored as a separate stream in the container.
	  To clarify, 'lcevc=true' just means that the video buffers have LCEVC metadata
	  attached. Therefore, it is valid to have a stream with LCEVC enhancement data as
	  SEI with 'lcevc=false' as long as it is not attached as metadata.
	  This will be needed once we add support for the demuxer to attach LCEVC metadata
	  to video buffers if it is stored in a separate track.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9427>

2025-07-25 03:51:13 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12fisheyedewarp.cpp:
	* tests/examples/d3d12/meson.build:
	  examples: Add d3d12fisheyedewarp test example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441>

2025-06-20 03:23:25 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3dshader/gstd3dshadercache.cpp:
	* gst-libs/gst/d3dshader/gstd3dshadercache.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/CSMain_fisheye_equirect.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/CSMain_fisheye_panorama.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/CSMain_fisheye_perspective.hlsl:
	* gst-libs/gst/d3dshader/plugin-hlsl/hlsl.h:
	* gst-libs/gst/d3dshader/plugin-hlsl/meson.build:
	* sys/d3d12/gstd3d12fisheyedewarp.cpp:
	* sys/d3d12/gstd3d12fisheyedewarp.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Add support for dewarping fisheye images
	  Add d3d12fisheyedewarp element that performs fisheye image dewarping
	  using D3D12. A UV remap LUT texture is generated via a compute shader,
	  and the actual remapping is performed in a pixel shader using this LUT
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441>

2025-07-24 17:44:46 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  objectdetectionoverlay: Print tracking id
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9440>

2025-07-24 18:16:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  vaXXXenc: calculate latency with corrected framerate
	  Fixes: #4558
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9437>

2025-07-10 21:56:28 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2rbuf.h:
	* sys/wasapi2/gstwasapi2sink.cpp:
	* sys/wasapi2/gstwasapi2src.cpp:
	  wasapi2: Add continue-on-error property
	  If enabled, wasapi2src/sink will post a warning message instead of an error,
	  when device failures occur, such as open failure, I/O error,
	  or device removal.
	  The element will continue to produce/consume audio buffers and behave as if
	  a capture/render device were active, allowing pipeline to keep running even when
	  no audio endpoint is available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-07-10 22:29:31 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2util.cpp:
	  wasapi2: Use 48kHz default sample rate
	  That's most common default value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-07-04 21:55:13 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	  wasapi2deviceprovider: Probe device form factor and enumerator name
	  Adding form factor and enumerator information to device property struct
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-07-01 00:33:18 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2object.cpp:
	* sys/wasapi2/gstwasapi2object.h:
	* sys/wasapi2/gstwasapi2rbuf.cpp:
	* sys/wasapi2/gstwasapi2rbuf.h:
	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	* sys/wasapi2/gstwasapi2ringbuffer.h:
	* sys/wasapi2/gstwasapi2sink.c:
	* sys/wasapi2/gstwasapi2sink.cpp:
	* sys/wasapi2/gstwasapi2src.cpp:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/meson.build:
	* sys/wasapi2/plugin.cpp:
	  wasapi2: Add support for dynamic device switch
	  Ringbuffer implementation is re-written to support "device" property
	  change in playing state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326>

2025-02-26 03:03:15 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Disallow resizing in case of passthrough
	  It's not supported yet
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-02-26 02:27:38 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Avoid synchronization if possible
	  If input/output memory objects have the same cuda stream,
	  don't need to synchronize stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-02-26 02:22:24 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Cache texture object
	  ... instead of creating texture for every frame
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-02-26 01:20:23 +0900  Seungha Yang <seungha@centricular.com>

	* ext/nvdswrapper/gstnvdsdewarp.cpp:
	  nvdsdewarp: Add support for output resizing
	  ... and adding "add-borders" property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8558>

2025-05-05 14:44:54 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkdownload.h:
	  vkdownload: implement decide_allocation virtual method
	  In the case of caps change such as frame size, a new buffer pool should be
	  created according to this new caps via the decide_allocation() vmethod.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8931>

2025-06-04 16:10:20 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  analyticsoverlay: Add expire-overlay property
	  If there has been no new data for this amount of time, just
	  expire the overlay and don't send one. Otherwise, it keeps sending
	  the old one for the following frames.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9409>

2025-07-04 23:34:13 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvencoder.cpp:
	* sys/nvcodec/gstnvencoder.h:
	* sys/nvcodec/gstnvh264encoder.cpp:
	* sys/nvcodec/gstnvh265encoder.cpp:
	  nvencoder: Always allow interlaced stream
	  ... even if hardware does not support interlaced encoding at bitstream level.
	  Although interlacing information is not written in the bitstream,
	  that information can be signalled via container, thus allow interlaced
	  stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9328>

2025-07-19 01:50:03 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	  d3d12swapchainsink: Add last-rendered-sample action signal
	  Add a new action signal to allow applications to capture
	  the most recently rendered frame directly from the swapchain
	  back buffer.
	  Unlike the existing "last-sample" property, which exposes
	  the raw input sample before any sink-side processing, this
	  signal captures the final displayed image after any internal
	  image processing (e.g., UV remap, color balance, overlay) has been
	  applied.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9423>

2025-05-26 13:47:39 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* tests/check/libs/vkvideoencodebase.c:
	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	  tests: vkh26xenc: use vkvideoencodebase
	  To avoid duplicating code, use vkvideoencodebase.c
	  Code cleanup and function clarifications.
	  Fix leaks in case of multiple device.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9077>

2025-07-15 20:10:25 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttflite.c:
	* ext/tflite/gsttflitevsiinference.c:
	* ext/tflite/gsttflitevsiinference.h:
	* ext/tflite/meson.build:
	* meson.options:
	  tflite: Add support for VSI delegate
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9410>

2025-07-17 17:14:06 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Use utility functions to get tensors
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

2025-07-17 17:12:29 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  classifiertensordecoder: Handle error cases better with labels file
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

2025-07-17 16:47:06 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdobjectdetector: Validate tensor type and dimensions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

2025-07-17 16:46:33 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gsttensor.c:
	  tensor: Print tensor name in debug name
	  It makes it easier to understand which one is rejected.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9419>

2025-07-18 17:52:42 +0100  Tim-Philipp Müller <tim@centricular.com>

	* gst/unixfd/gstunixfdsink.c:
	* gst/unixfd/gstunixfdsrc.c:
	  unixfd: fix and improve the example pipelines in the documentation
	  - Add a videoconvert element before the videosink so that the output
	  works no matter what format gets negotiated (A444_16LE for me)
	  - Specify a reasonable video format and size with a capsfilter, so
	  we don't default to something silly like A444_16LE @ 240p.
	  - Add a timeoverlay element, so it's obvious when stoppping/restarting
	  the pipeline that the input stream is just picked up again from the
	  moment the consumer pipeline is restarted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9422>

2025-07-16 16:46:18 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder.c:
	* gst-libs/gst/transcoder/gsttranscoder.h:
	  transcoder: Fix warning/error APIs
	  The GError pointers were actually not out-parameters. :(
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>

2025-07-16 16:44:59 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder.c:
	  transcoder: Remove unused priv->bus variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>

2025-07-16 16:43:36 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
	  transcoder: signal-adapter: Fix error/warning details access
	  The field names were missing in the gst_structure_get() calls...
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9407>

2025-07-16 09:27:40 +0100  Philippe Normand <philn@igalia.com>

	* tests/check/gst-plugins-bad.supp:
	  check: Silence some OpenSSL memory leaks
	  The OpenSSL version shipping in Fedora 40 leaks memory, the issue is fixed in
	  F42.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9323>

2025-07-03 12:06:22 +0100  Philippe Normand <philn@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/dtls/gstdtlscertificate.c:
	* ext/dtls/gstdtlsdec.c:
	* ext/dtls/gstdtlssrtpdec.c:
	  dtls: Use ECDSA private key for default certificate
	  ECDSA is widely used in browsers and SFUs, some servers such as the ones using
	  BouncyCastle only accept certificates signed with ECDSA.
	  Based on closed MR https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2458
	  Fixes #4516
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9323>

2025-07-16 15:58:27 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/analytics/gsttensormeta.c:
	* gst-libs/gst/analytics/gsttensormeta.h:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensormeta: Check dimensions when retrieving tensor
	  Modify the API to retrieve the tensor meta to check for the dimensions
	  as well.
	  Also fix an API mistake, the buffer whose dimensions should be checheck
	  is the one inside the GstTensor, not another buffer some outside.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9411>

2025-07-16 11:18:33 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	  tensormeta: Don't crash on invalid tensor name
	  It's a valid case to check for an existing tensor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9411>

2025-07-10 18:23:30 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkupload.c:
	  vkupload: fix the refactored frame copy
	  When refactoring the code in 743c425f64,
	  the wrong GstBuffer has been used to copy to,
	  leading to a failing frame copy.
	  The bug has been discovered running
	  elements_vkcolorconvert.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9373>

2025-07-14 22:58:25 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter-private.h:
	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	* sys/d3d12/gstd3d12swapchainsink.cpp:
	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	  d3d12swapchainsink: Update uv-remap signal to support background color
	  Allow per viewport background color setting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9393>

2025-07-03 19:40:45 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/gsttensor.c:
	  tensor: Clarify meaning of the dimensions array in the docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9325>

2025-03-06 18:07:08 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gstanalyticsmeta.c:
	  analyticsmeta: Remove incorrect check
	  The value can be NULL which is the wildcard
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9413>

2025-07-08 11:15:31 +0530  raghu447 <raghavendra.rao@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  tensordecoder: rename facedetector element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9344>

2025-07-09 07:50:43 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth266parse.c:
	* gst/videoparsers/gsth266parse.h:
	  h266parse: Parse and attach LCEVC metadata to buffers if present
	  Similar to h264parse and h265parse, this patch enhances the element to parse
	  LCEVC enhancement data from SEI, and attach it to output buffers as GstLcevcMeta.
	  The 'lcevc' field in the output caps is also set to TRUE or FALSE depending on
	  whether LCEVC data is present or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9365>

2025-07-09 07:48:32 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	* gst/videoparsers/gsth266parse.c:
	  h266parse: Parse and process SEI registered user data
	  Similar to h264parse and h265parse, this patch improves the element to parse
	  the SEI registered user data from NAL units. The core structure of H266 SEI for
	  ITU-T T.35 is the same as the other parsers, so we can re-use the same logic.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9365>

2025-07-15 01:29:46 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	  examples: d3d12swapchainsink: Add support for force-aspect-ratio change
	  Adding keyboard control for "force-aspect-ratio" property change
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9392>

2025-07-15 01:28:40 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	  d3d12swapchainsink: Fix force-aspect-ratio change in playing state
	  Set output updated flag so that viewport can be calculated again
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9392>

2025-07-14 15:07:37 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/analytics.h:
	  analytics: Include new batch meta in the single-include header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9391>

2025-06-19 13:24:32 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/gstanalyticsbatchmeta.c:
	* gst-libs/gst/analytics/gstanalyticsbatchmeta.h:
	* gst-libs/gst/analytics/meson.build:
	  analytics: Add GstAnalyticsBatchMeta for batches of buffers from one or more streams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9282>

2025-07-09 02:52:27 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/avtp/gstavtpcrfbase.c:
	* ext/avtp/gstavtpcrfbase.h:
	  avtp: crf: Setup socket during state change to ensure we handle failure
	  Previously the socket would be created in the thread, which take some
	  time to start. As the tests were so short they would usually pass as
	  they don't actually use the socket.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9364>

2025-07-09 02:51:11 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/avtpcrfcheck.c:
	* tests/check/elements/avtpcrfsync.c:
	  avtp: crf: tests: Only run tests if packet socket is available
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9364>

2025-07-09 00:47:58 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtmp2/rtmp/rtmpclient.c:
	  rtmp2src: don't send window acknowledgement size commands twice
	  This causes servers such as AWS MediaLive to drop the connection, and
	  the message flow chart as documented in the "spec" always has the
	  server sending it first, and the client replying to it on reception of
	  the Set Peer Bandwidth, which we do since 286a3829b637.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9360>

2025-07-09 00:44:36 +0200  Mathieu Duponchelle <mathieu@centricular.com>

	* gst/rtmp2/gstrtmp2locationhandler.c:
	  rtmp2src: fix playback of URIs without a playpath
	  ffmpeg manages to play RTMP URLs in the form:
	  ```
	  protocol://servername:port/appname
	  ```
	  and does not require a second component to the path, adapt our code to
	  allow using such URLs as `tcUrl`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9360>

2025-07-09 12:21:31 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Fix negotiation failure with profile=main-422-10
	  Previous version passed just enough data to the parser to detect
	  main/main-10, but main-422-10 is one of the range extensions profiles.
	  Those need a few more bits to be accurately detected, and since those
	  were just uinitialized memory previously, we'd incorrectly end up with
	  main or main-10 when the encoder was in fact giving us 4:2:2 10bit
	  output.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9348>

2025-07-08 10:13:11 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: window: Fix next video info leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>

2025-07-08 10:09:39 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* ext/gtk/gstgtkwaylandsink.c:
	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: Parse and set the HDR10 metadata
	  Basically whenever the compositor have support for it, and the caps includes it,
	  set the mastering display and light content level information.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>

2025-07-08 10:08:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	* gst-libs/gst/wayland/gstwldisplay.h:
	  wayland: display: Detect HDR10 metadata feature
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9353>

2025-06-17 06:38:59 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/openh264/gstopenh264enc.cpp:
	  openh264: Ensure src_pic is initialized before use
	  valgrind was showing reads of uninitialized memory and the
	  library examples all memset the structure before use.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9352>

2025-05-22 14:41:30 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth265parse.h:
	  h265parse: Parse and attach LCEVC metadata to buffers if present
	  Similar to h264parse, this patch enhances the element to parse LCEVC enhancement
	  data from SEI, and attach it to output buffers as GstLcevcMeta. The 'lcevc'
	  field in the output caps is also set to TRUE or FALSE depending on whether LCEVC
	  data is present or not.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9335>

2025-07-08 20:00:07 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.build:
	  Back to development after 1.27.1

=== release 1.27.1 ===

2025-07-08 19:55:15 +0100  Tim-Philipp Müller <tim@centricular.com>

	* NEWS:
	* RELEASE:
	* gst-plugins-bad.doap:
	* meson.build:
	  Release 1.27.1

2025-07-07 10:12:52 +1000  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/vulkan/gstvkfullscreenquad.c:
	  vulkanfullscreenquad: add locks for synchronisation
	  Now all API can be accessed from any thread.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9337>

2025-05-31 03:35:27 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/transcode/gst-cpu-throttling-clock.c:
	  cpu-throttling-clock: fix race between async callback and unscheduling
	  It's possible that the callback is already scheduled to run on another
	  thread when we unschedule it during dispose and we would then access
	  a freed object.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

2025-05-30 19:15:56 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/h266parse.c:
	  h266parse: test: Pass correct size argument to va_arg function
	  sizeof(int) != sizeof (gsize)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

2025-05-30 15:23:03 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/analyticsmeta.c:
	  analytics: tests: Copy correct size of array to buffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

2025-05-30 15:20:41 -0400  Doug Nazar <nazard@nazar.ca>

	* sys/decklink/gstdecklink.cpp:
	  decklink: Fix a memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

2025-05-30 15:21:58 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/webrtcbin.c:
	  webrtc: tests: Fix a few memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

2025-05-30 15:20:02 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/camerabin2/gstcamerabin2.c:
	  camerabin: Fix a memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9151>

2025-07-07 11:59:18 +0200  Hanna Weiß <hweiss@igalia.com>

	* gst-libs/gst/vulkan/gstvkfullscreenquad.c:
	  vulkan: Fix drawing too many triangles in fullscreenquad
	  was using a index buffer for triangle list but drawn as strip
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9338>

2025-07-07 15:16:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/gtk/gstgtkwaylandsink.c:
	  gtkwaylandsink: Make the rotate property GST_PARAM_MUTABLE_PLAYING
	  This matches the change we made to waylandsink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-06-25 19:42:59 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	  gstwaylandsink: add some locking documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-06-25 16:21:40 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* docs/plugins/gst_plugins_cache.json:
	* ext/wayland/gstwaylandsink.c:
	  gstwaylandsink: add GST_PARAM_MUTABLE_PLAYING flag for more properties
	  The fullscreen state and rotate method can be changed while the element is
	  playing, so add the GST_PARAM_MUTABLE_PLAYING flag to those properties to
	  indicate this.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-06-25 16:17:58 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: make sure self->window is not NULL before using it
	  self->window is created with the first frame, so it is not available when
	  properties are set during construction of the element.
	  Skip calling gst_wl_window_ensure_fullscreen() in this case.
	  The window is already constructed with the current configured fullscreen state,
	  nothing else in needed here.
	  Without this, running e.g. 'gst-launch-1.0 -v videotestsrc ! waylandsink
	  fullscreen=true' will result in:
	  GStreamer-Wayland-CRITICAL **: 14:11:19.921: gst_wl_window_ensure_fullscreen: assertion 'self' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9283>

2025-07-02 18:39:20 +0200  Olivier Crête <olivier.crete@collabora.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Add RTX/FEC for each relevant payload type
	  When sending an answer with multiple codecs, we need to add the RTX and FEC
	  payload for each codec
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9031>

2025-06-15 23:17:17 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipmemorycopy.cpp:
	  hipmemorycopy: Use stream associated with buffer
	  ... instead of global device stream. memory object might hold
	  different stream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 23:09:17 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipconverter.cpp:
	  hipconverter: Avoid unnecessary sync
	  If input and output buffers are running on the same stream,
	  record event instead of sync
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 21:34:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipbufferpool.cpp:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthipmemory.h:
	  hipmemory: Allow lazy sync
	  Store recorded hip event and wait for sync later if needed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 21:29:19 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/gsthipevent.cpp:
	* sys/hip/gsthipevent.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipstream.cpp:
	* sys/hip/gsthipstream.h:
	* sys/hip/meson.build:
	* sys/hip/stub/driver_types.h:
	* sys/hip/stub/hip/hip_runtime_api.h:
	  hip: Add GstHipEvent object
	  hip event handle wrapper object
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 19:48:54 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipcompositor.cpp:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthipmemory.h:
	* sys/hip/gsthipmemorycopy.cpp:
	  hip: Use non-default stream
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-06-15 19:06:28 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthipdevice.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipstream.cpp:
	* sys/hip/gsthipstream.h:
	* sys/hip/meson.build:
	  hip: Add GstHipStream object
	  Adding hip stream abstraction layer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9281>

2025-05-28 08:45:40 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: fix memory leaks
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>

2025-05-28 08:44:01 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/transcode/gst-cpu-throttling-clock.c:
	  cpu-throttling-clock: free clock when finished
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9115>

2025-07-05 03:10:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12screencapturedevice.cpp:
	  d3d12screencapture: Add support for monitor add/remove in device provider
	  Update device list on WM_DISPLAYCHANGE event
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4521
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9330>

2025-07-04 10:56:27 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  Revert "vp9parse: Always default to super-frame"
	  This reverts commit fd1428d3ebf937d7656c3788df3ef3ff85fecc31.
	  As reported in #4524, this changes cause regressions. The problem is due to a
	  bug in how vp9parse interact with parsebin, presenting downstream negotiation of
	  alignment to work. This revert to being stuck using frame alignment always,
	  which fortunately works with libvpx, though less efficient.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9329>

2025-05-07 14:02:05 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  vp9parse: Only show the last frame of a super frame
	  Only the last frame of a super frame should be displayed by default. When
	  converting from super frame to frame, mark all frames as decode only except the
	  last one. This fixes vp90-2-22-svc_1280x720_3.ivf conformance test with
	  stateless decoders such as VA.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>

2025-05-07 13:48:04 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  vp9parse: Always default to super-frame
	  Sort the list of structure before truncating so that we don't prefer
	  "frame"" alignment over "super-frame" in some cases.
	  Fixes vp90-2-22-svc_1280x720_3.ivf conformance test when using libvpx based
	  decoder.
	  Fixes #4371
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>

2025-05-07 10:29:10 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/videoparsers/gstvp9parse.c:
	  vp9parse: Fix typo Aligment vs Alignment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8944>

2025-06-23 15:28:30 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth264parse.h:
	  h264parse: Forward LCEVC caps
	  This makes sure the parser exposes lcevc=true output caps if the demuxer
	  attached LCEVC data to video frames.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9321>

2024-11-20 18:46:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/examples/meson.build:
	* tests/examples/vulkan/meson.build:
	* tests/examples/vulkan/vulkanenc.c:
	  examples: vulkan encoder test
	  Similar as d3d11 and va.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-10 19:14:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/vulkan/gstvulkan.c:
	* ext/vulkan/meson.build:
	* ext/vulkan/vkh264enc.c:
	* ext/vulkan/vkh264enc.h:
	  vulkanh264enc: add Vulkan H264 encoder
	  Add an element to encode h264 content using the vulkan API.
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-10 18:53:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/vulkan/base/gsth264encoder.c:
	* ext/vulkan/base/gsth264encoder.h:
	* ext/vulkan/meson.build:
	  vulkan: h264encoder: introduce base class
	  H.264 base class oriented for hardware accelerated encoders, such as Vulkan, VA
	  and others.
	  1. It can be parametrized for hardware limits, such as lists size, b-frames
	  supports, etc.
	  2. It produces a GOP structure map [IDR, R/I/B, ...)
	  3. It proposes parameters set and other strucures such as bitrate limites.
	  Subclases can modify those structures.
	  4. It calls the subclass encode virtual method implementation.
	  It doesn't handle rate control algorithms or other encoding quality mechanisms.
	  For a deeper introduction to the class there was a lighting talk in the GstConf
	  2024: <https://www.youtube.com/watch?v=-fQY54KHH38>
	  Co-authored-by: He Junyan <junyan.he@intel.com>
	  Co-authored-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-07-03 11:11:38 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: free data on error
	  Co-authored-by: Stéphane Cerveau <scerveau@igalia.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-17 19:15:06 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	* gst-libs/gst/vulkan/gstvkencoder-private.h:
	  vkencoder-private: add gst_vulkan_encoder_rc_mode()
	  To get the updated rate control mode.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2024-12-09 17:59:30 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: fix array layer for layered DPB
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-06-09 17:27:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkencoder-private.c:
	  vkencoder-private: free err when bailing
	  And log out the error message from the Vulkan call.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-05-29 13:20:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkdevice.c:
	  vulkan: ycbcr conversion extension got promoted in 1.1.0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197>

2025-07-02 22:38:41 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/tensordecoders/gstssdobjectdetector.c:
	  ssdobjectdetector: Use correct tensor data index for the scores
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9322>

2025-06-29 22:52:37 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	  wasapi2: Fix various MinGW build warnings
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

2025-06-29 20:45:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/AsyncOperations.h:
	* sys/wasapi2/gstwasapi2client.cpp:
	* sys/wasapi2/gstwasapi2client.h:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/meson.build:
	  waapi2: Remove unused WinRT deps and implementations
	  Removing unused WinRT API based implementations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

2025-06-29 01:46:44 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2object.cpp:
	* sys/wasapi2/gstwasapi2object.h:
	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	* sys/wasapi2/gstwasapi2ringbuffer.h:
	* sys/wasapi2/gstwasapi2sink.c:
	* sys/wasapi2/gstwasapi2src.c:
	* sys/wasapi2/meson.build:
	  wasapi2: Port to IMMDevice based device selection
	  Because of a couple of issues reported related to WinRT device
	  enumeration, porting to IMMDevice device id based device selection.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4311
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3936
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

2025-06-27 21:36:53 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2activator.cpp:
	* sys/wasapi2/gstwasapi2activator.h:
	* sys/wasapi2/gstwasapi2client.cpp:
	* sys/wasapi2/gstwasapi2device.c:
	* sys/wasapi2/gstwasapi2device.cpp:
	* sys/wasapi2/gstwasapi2device.h:
	* sys/wasapi2/gstwasapi2enumerator.cpp:
	* sys/wasapi2/gstwasapi2enumerator.h:
	* sys/wasapi2/gstwasapi2util.cpp:
	* sys/wasapi2/gstwasapi2util.h:
	* sys/wasapi2/meson.build:
	* sys/wasapi2/plugin.cpp:
	  wasapi2: Implement IMMDeviceEnumerator based enumerator
	  ... and merge wasapi2{capture,render}deviceprovider into single
	  wasapi2deviceprovider since we can enumerate input/output audio
	  devices at once using IMMDeviceEnumerator
	  This is a preparation for complete porting to Win32 API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307>

2025-06-05 11:24:34 +0100  James Cowgill <james.cowgill@blaize.com>

	* sys/v4l2codecs/gstv4l2decoder.c:
	  v4l2codecs: Use prop_offset in gst_v4l2_decoder_install_properties
	  Install properties at the given offset as intended instead of at 0.
	  Currently there are no elements with any properties, so this has no
	  effect. This change is needed if any element adds properties in the
	  future.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9179>

2025-06-27 10:51:05 +0200  Edward Hervey <edward@centricular.com>

	  mpegtsdemux: Add property to disable skew corrections
	  This is for cases where:
	  * We *do* want to refer to the PCR stream to figure out global positioning, gap
	  detection, wrapover correction.
	  * But we do not want to apply any skew correction to the output
	  This is useful for cases where:
	  * the input stream has already been clock-corrected (for example with
	  mpegtslivesrc)
	  * or where the output doesn't require synchronization against a clock (ex: for
	  storage)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9301>

2025-06-27 10:06:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  v4l2codecs: h265dec: Fail when frame cropping is needed while using DMABuf
	  It is not possible to do frame cropping when DMABuf caps feature is negotiated.
	  The VideoInfo size is zero, resulting in empty destination buffers, and video
	  convert library may not understand what the format actually is.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-06-27 10:00:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codech265dec.c:
	  v4l2codecs: h265dec: Avoid cropping for zero top/left alignments
	  If the conformance window does not requires cropping the top or left of the
	  window, we can use GstVideoMeta to crop in a zero-copy fashion. If a copy
	  is needed, the frame copy can also handle it, and is a lot faster.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-06-27 09:49:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: dec: Remove has_videometa member
	  Now that the code is properly located, this member is not needed
	  anymore.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-06-27 09:37:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	* sys/v4l2codecs/gstv4l2codecvp8dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: dec: Move copy_frames logic inside decide_allocation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9305>

2025-02-06 22:49:35 +0900  Seungha Yang <seungha@centricular.com>

	* ext/webrtcdsp/meson.build:
	  webrtcdsp: Respect disabled feature option
	  Don't try to build this plugin if it's explicitly disabled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8424>

2025-06-17 15:24:58 +0530  Vineet Suryan <vineet.suryan@collabora.com>

	* ext/onnx/README.md:
	  onnx: Use system installed Eigen to avoid hash mismatch failure
	  Eigen’s download for the commit referenced by ONNX Runtime v1.16.3 was
	  updated upstream, so the SHA-256 embedded in ORT’s CMake scripts no
	  longer matches and the build aborts with a hash-mismatch error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9229>

2025-06-22 03:23:59 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/avtp/gstavtpvfdepaybase.c:
	  avtp: Fix memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

2025-06-22 03:22:27 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/srt/gstsrtsrc.c:
	  srt: Fix warning about uninitialized memory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

2025-06-22 03:20:35 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/codecparsers/gstvc1parser.c:
	  vc1parser: Fix warning about printing uninitialized variables
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

2025-06-22 03:16:55 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/proxy/gstproxysrc.c:
	  proxysrc: Fix order freeing pads
	  Free pads from bottom of parent tree first else with GST_DEBUG
	  enabled it would access freed memory printing object info.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

2025-06-22 03:14:39 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/avtpcvfpay.c:
	  avtpcvfpay: tests: Initialize codec memory
	  If GST_DEBUG was enabled we would print unintialized memory
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9273>

2025-06-30 11:56:49 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/gsttensor.c:
	  analytics: Fix docs of gst_tensor_check_type()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9311>

2025-06-26 18:19:27 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensormeta.c:
	  analytics: Fix transfer annotations of gst_tensor_check_type()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9293>

2025-06-25 09:30:15 -0600  David Monge <david.monge@ridgerun.com>

	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: fix double free caused by shared PMT descriptor
	  The PMT descriptor was owned by the stream object but also added to
	  the descriptors array without copying, leading to a double free and
	  core dump during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9285>

2025-06-17 10:56:03 -0400  Thibault Saunier <tsaunier@igalia.com>

	* gst-libs/gst/cuda/gstcudanvrtc.cpp:
	  cuda: Lower debug log level on nvrtc compilation failure
	  We have a fallback to compile with cubin and that compilation failure
	  might very well not be fatal.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9232>

2025-06-24 21:40:26 +0800  He Junyan <junyan.he@intel.com>

	* gst-libs/gst/codecparsers/gsth266parser.c:
	* gst-libs/gst/codecparsers/gsth266parser.h:
	  h266parser: Fix overflow when parsing subpic_level_info
	  1. non_subpic_layers_fraction, ref_level_idc and ref_level_fraction_minus1
	  fields should not have the GST_H266_MAX_SUBLAYERS limitation.
	  2. Should check max_sublayers_minus1, no more than GST_H266_MAX_SUBLAYERS-1
	  Fixes ZDI-CAN-27381, CVE-2025-6663
	  Closes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4503
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9294>

2025-06-26 10:22:42 +0200  Johan Sternerup <johast@axis.com>

	* sys/hip/gsthipmemorycopy.cpp:
	  hip: Add missing #ifdef
	  So that it compiles without gstreamer-gl.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9289>

2025-06-12 12:45:57 +0200  Michael Olbrich <m.olbrich@pengutronix.de>

	* docs/plugins/gst_plugins_cache.json:
	* ext/wayland/gstwaylandsink.c:
	* ext/wayland/gstwaylandsink.h:
	* gst-libs/gst/wayland/gstwlwindow.c:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  waylandsink: Add force-aspect-ratio property
	  Similar to and inspired by glimagesink, xvimagesink and others.
	  The waylandsink never transform the buffer in any way but delegates this to the
	  Wayland compositor with the Wayland buffer transform API.
	  Rotation and window size are already supported, so this just changes the video
	  surface geometry that is communicated to the Wayland compositor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9210>

2025-06-25 16:24:44 +0200  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* ext/srt/gstsrtsink.c:
	* ext/srt/gstsrtsink.h:
	  srtsink: Fix header buffer filtering
	  Cleans up the code and fixes two issues:
	  - If there are no streamheaders in the caps but we have `HEADER`
	  buffers, it would run `gst_buffer_list_foreach` with `self->headers`
	  being `NULL`.
	  - The code forgot to unmap the buffer if it decided to ignore it.
	  Fixes: 0a562a92d7ee38d8919d1b802add84d3c93b59eb
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9284>

2025-06-01 00:02:16 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12graphicscapture.cpp:
	* sys/d3d12/gstd3d12graphicscapture.h:
	* sys/d3d12/plugin.cpp:
	  d3d12screencapturesrc: Fix OS handle leaks/random crash in WGC mode
	  Multiple DispatcherQueues per thread seems to be causing OS handle leak
	  and random crashes were observed. Instead of creating
	  thread/DispatcherQueue per GstD3D12GraphicsCapture object,
	  reuse only single thread and DispatcherQueue
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4351
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9153>

2025-05-23 07:12:40 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/libs/vkvideoencodeh264.c:
	* tests/check/libs/vkvideoencodeh265.c:
	  vkvideoencodeh26x: ensure we call teardown() for each test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9062>

2025-06-25 00:45:39 +0900  Seungha Yang <seungha@centricular.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/hip/plugin.cpp:
	  hip: Add plugin docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-09 23:09:46 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipcompositor.cpp:
	* sys/hip/gsthipcompositor.h:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	  hip: Add hipcompositor element
	  Feature-wise it's the same as cudacompositor
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-09 22:11:36 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	  hip: Load memset symbols
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-09 21:08:24 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipmemorycopy.cpp:
	  hipmemorycopy: Add support for GL interop
	  Enable memory copy between HIP and GL
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-03 19:51:47 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip-interop-gl.h:
	* sys/hip/gsthip-interop.cpp:
	* sys/hip/gsthip-interop.h:
	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/meson.build:
	  hip: Add GstHipGraphicsResource object
	  hipGraphicsResource_t wrapper object for graphics api interop
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-03 16:56:09 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthiploader-gl.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/meson.build:
	* sys/hip/stub/cudaGL.h:
	* sys/hip/stub/driver_types.h:
	* sys/hip/stub/hip/hip_gl_interop.h:
	* sys/hip/stub/hip/hip_runtime_api.h:
	  hip: Load GL interop related symbols
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-14 14:56:52 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipconverter.cpp:
	  hip: Pass GPU arch to kernel compile option args
	  Pass current GPU arch to compile option instead of relying on auto
	  detection
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-14 14:25:40 +0900  Seungha Yang <seungha@centricular.com>

	* meson.options:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/kernel/collect_ptx_headers.py:
	* sys/hip/kernel/meson.build:
	* sys/hip/meson.build:
	  hip: Add support for NVIDIA kernel precompile
	  ... with "hip-nvidia-precompile" and "hip-nvcc-arch" build options
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-14 13:17:00 +0900  Seungha Yang <seungha@centricular.com>

	* meson.options:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/kernel/collect_hsaco_headers.py:
	* sys/hip/kernel/converter-unpack.cu:
	* sys/hip/kernel/converter.cu:
	* sys/hip/kernel/meson.build:
	* sys/hip/meson.build:
	  hip: Add support for AMD kerenl precompile
	  Adding "hip-amd-precompile" build option. If enabled, AMD kernels
	  will be precompiled at build time. Also "hip-hipcc-arch" build option
	  (corresponding to --offload-arch hipcc option) is added
	  so that user can specify target GPU arch instead of auto-detection by hipcc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-12 19:45:55 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthipmemorycopy.cpp:
	* sys/hip/gsthipmemorycopy.h:
	* sys/hip/meson.build:
	* sys/hip/stub/cudaD3D11.h:
	* sys/hip/stub/cudaGL.h:
	  hip: Add support for memory copy between GstCuda and GstHip
	  Handle CUDA <-> HIP memory copy in hipupload and hipdownload elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-07 06:32:11 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip-enums.cpp:
	* sys/hip/gsthip-enums.h:
	* sys/hip/gsthip.h:
	* sys/hip/gsthipbasefilter.cpp:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthipdevice.h:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiprtc.h:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/gsthiputils.h:
	* sys/hip/kernel/converter.cu:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	* sys/hip/stub/cuda.h:
	* sys/hip/stub/driver_types.h:
	* sys/hip/stub/hip/nvidia_hip_runtime_api.h:
	  hip: Add support for NVIDIA
	  Adding HIP <-> CUDA translation layer like the HIP SDK does
	  but uses dlopen() for CUDA as well
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-05-06 20:16:29 +0900  Seungha Yang <seungha@centricular.com>

	* sys/hip/gsthip.h:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthiploader.cpp:
	* sys/hip/gsthiploader.h:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiprtc.h:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	* sys/hip/stub/hip/driver_types.h:
	* sys/hip/stub/hip/hip_runtime.h:
	* sys/hip/stub/hip/hip_runtime_api.h:
	* sys/hip/stub/hip/hiprtc.h:
	* sys/hip/stub/hip/texture_types.h:
	  hip: Remove build-time SDK dependency
	  Use dlopen at runtime
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-04-26 03:24:37 +0900  Seungha Yang <seungha@centricular.com>

	* meson.options:
	* sys/hip/gsthip.h:
	* sys/hip/gsthip_fwd.h:
	* sys/hip/gsthipbasefilter.cpp:
	* sys/hip/gsthipbasefilter.h:
	* sys/hip/gsthipbufferpool.cpp:
	* sys/hip/gsthipbufferpool.h:
	* sys/hip/gsthipconverter.cpp:
	* sys/hip/gsthipconverter.h:
	* sys/hip/gsthipconvertscale.cpp:
	* sys/hip/gsthipconvertscale.h:
	* sys/hip/gsthipdevice.cpp:
	* sys/hip/gsthipdevice.h:
	* sys/hip/gsthipmemory.cpp:
	* sys/hip/gsthipmemory.h:
	* sys/hip/gsthipmemorycopy.cpp:
	* sys/hip/gsthipmemorycopy.h:
	* sys/hip/gsthiprtc.cpp:
	* sys/hip/gsthiprtc.h:
	* sys/hip/gsthiputils.cpp:
	* sys/hip/gsthiputils.h:
	* sys/hip/kernel/converter-unpack.cu:
	* sys/hip/kernel/converter.cu:
	* sys/hip/meson.build:
	* sys/hip/plugin.cpp:
	* sys/meson.build:
	  hip: Add AMD HIP plugin
	  Adding hipupload, hipdownload, and hipconvert family elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8923>

2025-06-21 07:12:29 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  analyticsoverlay: Fix memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266>

2025-06-21 07:11:29 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/dashsink.c:
	  dashsink: test: Minor cleanups
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266>

2025-06-21 07:10:54 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/dash/gstdashsink.c:
	  dashsink: Fix memory leak
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9266>

2025-06-23 10:22:57 +1000  Matthew Waters <matthew@centricular.com>

	* sys/decklink/gstdecklink.cpp:
	* sys/decklink/gstdecklink.h:
	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklink/clock: remove clock_offset
	  It is completely unused and only ever initialized to 0.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9267>

2025-06-18 14:20:32 +1000  Matthew Waters <matthew@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	* sys/decklink/gstdecklinkvideosink.h:
	  decklink: calculate internal using values closer to the current clock times
	  In a previous version of the clock time conversion code, scheduled playback used
	  to be started (from 0) when transitioning to PLAYING and stopped when
	  transitioning PLAYING->PAUSED. This worked fine when converting running times
	  using the internal clock.  However, now the decklink clock will produce values
	  that are monotonically increasing and do not reset to 0 at the same moments as
	  running time anymore. This means that the clock adjustments could attempt to
	  convert a small running time based on a large clock time e.g. after pausing
	  for many hours. As the adjustment code is a simple linear interpolation based on
	  the current clock times (large) using the provided value (small), the small
	  differences in the rate could result in very large differences in the
	  output time.
	  Fix by instead using both internal and external clock times based on the values
	  that gst_clock_get_calibration() will return. By doing so, small changes in the
	  rate calculations between the internal and external clock times will not result
	  in potentially large differences in the output internal time from
	  gst_clock_unadjust_with_calibration().
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4197
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9267>

2025-06-13 17:23:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: refactor frame copy in a single function
	  Avoiding code duplication
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9222>

2025-06-13 15:24:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: use gst_video_frame_copy() for VulkanBuffer
	  There's no need of a custom copy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9222>

2025-06-18 14:04:14 +0200  Edward Hervey <edward@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Allow access unit parsing failures
	  * Refactor the various Access Unit extraction calls into a single function
	  * Allow the access unit parsing to fail, but emit a warning
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9246>

2025-06-16 18:38:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc-codeclist.h:
	* sys/androidmedia/gstamc.c:
	* sys/androidmedia/gstamc.h:
	* sys/androidmedia/jni/gstamc-codeclist-jni.c:
	  amc: Overhaul hw-accelerated video codecs detection
	  Android 10 (API 29) added support for isHardwareAccelerated() to
	  MediaCodecInfo to detect whether a particular MediaCodec is backed by
	  hardware or not. We can now use that to ensure that the video hw-codec
	  is PRIMARY+1 on Android, since using a software codec for video is
	  simply not feasible most of the time.
	  If we're not able to detect isHardwareAccelerated(), perhaps because
	  the Android API version is too old, we try to use the codec name as
	  a fallback.
	  Also rank PRIMARY+1 the c2.android c2.exynos and c2.amlogic audio
	  codecs alongside OMX.google, because they are known-good.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-06-17 03:32:24 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Log under GST_FIXME for audio encoders
	  We don't support audio encoders yet, so log that correctly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-06-16 18:36:31 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Improve codec registration logging
	  Most of the messages can be printed with INFO threshold since they are
	  only printed on plugin registration.
	  Fix printing of codec caps, since GST_PTR_FORMAT truncates the output
	  in almost every case that I saw.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-06-16 18:34:39 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* sys/androidmedia/gstamc.c:
	  amc: Print error messages when registering plugins
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9225>

2025-02-20 21:59:31 +0000  Ben Butterworth <24711048+ben-xD@users.noreply.github.com>

	* gst/mpegtsdemux/tsdemux.c:
	  mpegts: handle MPEG2-TS with KLV metadata safely by preventing out of bounds
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3896
	  @slomo, as requested on https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3896#note_2780065
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8529>

2025-06-13 12:35:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vkupload: use gst_buffer_find_memory() to select memory
	  We never implemented correctly the selection of memories in a buffer given the
	  plane.
	  This patch uses gst_buffer_find_memory() for that. The offset is checked via the
	  video meta either in the input and output buffers, or the default offset given
	  the format and size.
	  This patch also requests the video meta option for the output buffers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219>

2025-06-13 11:28:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: set video meta to buffers if requested
	  This patch adds the possibility to attach video metas to allocated buffers if
	  API users request that option.
	  The main reason to add this meta is for the future usage of
	  gst_buffer_find_memory(), where the requested offset determines the memory
	  index.
	  In the case of multi-memory Vulkan images the offset of every component is
	  larger than the default offset determined by the format and frame size, because
	  of the buffer minimum size and memory alignment determined by the used driver.
	  Then, the offset is set in the buffer video meta.
	  In the case of single memory Vulkan images, the default offset is set in the
	  video meta.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219>

2025-06-13 11:27:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* gst-libs/gst/vulkan/gstvkimagebufferpool.c:
	  vkimagebufferpool: remove unused variable
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9219>

2024-07-26 14:23:10 +1000  Matthew Waters <matthew@centricular.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: disconnect signal ICE handlers on dispose
	  It is entirely possible that the in progress may still provide some state
	  updates until the ICE object is destroyed, these state updates should
	  not really be done when webrtcbin is in the process of destroying itself
	  and access freed data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9216>

2025-06-12 15:34:53 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkerror.c:
	  vkerror: add invalid_video_std_parameters message
	  Add string to handle error related to the
	  codec standard parameters.
	  <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9212>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9212>

2025-06-12 01:07:01 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12swapchainsink-win32.cpp:
	* tests/examples/d3d12/meson.build:
	  examples: d3d12swapchainsink: Add uv-remap/redraw example
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209>

2025-06-11 22:42:22 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12swapchainsink.cpp:
	  d3d12swapchainsink: Add uv-remap and redraw action signal
	  New uv-remap signal can be used for UV coordinate remap operation
	  in videosink, and redraw signal can allow updating view even in paused
	  state
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209>

2025-06-12 20:15:15 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter-private.h:
	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Add support multiple UV remap in a single path
	  Add private methods for multiple UV remap operation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209>

2025-04-08 16:12:46 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/codecparsers/gstav1parser.c:
	* gst-libs/gst/codecparsers/gstav1parser.h:
	* sys/nvcodec/gstnvav1dec.cpp:
	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	  parser: fix spelling of GstAV1SegmentationParams
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8795>

2025-06-12 11:09:42 -0400  Xavier Claessens <xclaessens@netflix.com>

	* ext/svtjpegxs/meson.build:
	  wraps: Add svtjpegxs from wrapdb
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9214>

2025-06-12 11:45:33 -0300  L. E. Segovia <amy@amyspark.me>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Recover missing comment
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8974#note_2955585
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9213>

2025-06-09 13:05:47 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: Include all accepted media formats in SDP answers
	  Until this patch only the first format was added.
	  Fixes #4458
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9117>

2025-06-10 22:17:46 +1000  Matthew Waters <matthew@centricular.com>

	* sys/decklink/gstdecklinkvideosink.cpp:
	  decklinkvideosink: show preroll frame correctly
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4254
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9199>

2024-11-13 11:03:30 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/meson.build:
	  wayland: Add support for local protocols
	  This proved to be helpful for previous protocol experiments, so let's
	  upstream it. Inspired by the corresponding code in Weston.
	  Protocols need to be placed in a `protocols` subdirectory and can be
	  declared in the following way in `meson.build`:
	  ```
	  ['color-management-v1', 'internal' ],
	  ```
	  Note the `v1` being part of the name.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9186>

2024-05-10 18:24:06 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwldisplay.c:
	* gst-libs/gst/wayland/gstwldisplay.h:
	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: Add basic colorimetrie support
	  Using the Wayland color-management and color-representation protocols.
	  The implementation queries supported values from the compositors and tries
	  to convert them into GstVideoColorimetry values. It currently *does not*
	  pass these upstream to decoders etc. as GstCaps for negotiation.
	  On the Wayland side it uses named transfer functions, named primaries,
	  matrices and ranges. The straight alpha mode is also set if supported
	  by the compositor.
	  On setting caps it translates the GstVideoColorimetry from the GstVideoInfo
	  back to into a Wayland parametric image description and color representation
	  for the video surface if possible. If a colorimetry is not fully
	  support, we bail out and if wayland objects already exist they get reset or
	  deleted.
	  Note that not all GstVideoColorimetry values are implemented yet.
	  Useful debug options: GST_DEBUG=wlwindow:4,wldisplay:4
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2024-12-11 15:40:24 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwlwindow.c:
	  wayland: wlwindow: Use GstWlWindow debug category
	  As probably intended - and Demote frame_redraw_cb log to debug
	  to make it less noisy.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2025-05-15 13:47:35 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwlbuffer.h:
	* gst-libs/gst/wayland/gstwldisplay.h:
	* gst-libs/gst/wayland/gstwlwindow.h:
	  wayland: Turn wl objects into GstObjects
	  For better logging and locking support.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2024-11-12 20:19:35 +0100  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/meson.build:
	  wayland: Add color protocols
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6830>

2024-12-13 19:08:30 +1100  Jan Schmidt <jan@centricular.com>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Send new-segment before GAP
	  If adding a sparse stream and sending a gap event to bring it
	  up to speed, make sure to send the new segment event first
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8143>

2025-06-16 13:39:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* tests/check/elements/vkupload.c:
	* tests/check/meson.build:
	  test: vulkanupload unit test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9218>

2025-06-13 14:36:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkupload.c:
	  vulkanupload: fix regression for uploading VulkanBuffer
	  Merge request !5651 introduced a regression for uploading VulkanBuffer. It can
	  be verified by
	  gst-launch-1.0 videotestsrc ! video/x-raw, format=NV12 ! vulkanupload ! \
	  video/x-raw\(memory:VulkanBuffer\) ! fakesink
	  Nobody has complained about this regression, so we assume it's a very niche
	  use-case.
	  This patch solve the regression by instantiating a different buffer pool
	  depending on the output cap features, and configuring it accordingly.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9218>

2025-06-04 17:52:01 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  onnx: Also implement stop to clean up session
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9176>

2025-03-05 17:47:41 -0500  Olivier Crête <olivier.crete@collabora.com>

	* ext/onnx/gstonnxinference.cpp:
	  onnxinference: Clean up session creation logic
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9176>

2025-06-10 14:41:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/avtp/gstavtp.c:
	* scripts/gen-changelog.py:
	  gstreamer-vaapi: remove subproject
	  It's almost superseded by va plugin in gst-plugins-bad.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9200>

2025-06-10 12:53:05 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/transcoder/gsttranscoder.c:
	  transcoder: Fix uritranscodebin reference handling
	  Make sure the reference is not floating, because the get_pipeline function
	  returns a transfer-full reference.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9198>

2025-05-13 12:22:08 +0000  L. E. Segovia <amy@centricular.com>

	* ext/curl/gstcurlhttpsrc.c:
	  curl: Fix wrong format specifier for macOS
	  > ../ext/curl/gstcurlhttpsrc.c:1331:11: error: format specifies type
	  > unsigned long long' but the argument has type 'curl_off_t' (aka 'long') [-Werror,-Wformat]
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8974>

2025-05-09 16:45:53 +0200  Stefan Andersson <stefana@axis.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	* tests/check/elements/h264parse.c:
	* tests/check/elements/h265parse.c:
	* tests/check/elements/h266parse.c:
	  h26xparse: Drop NAL units that can't be parsed using AU alignment
	  Change so that the handling of NAL unit that can't be parsed when using
	  AU alignment is the same as when using NAL alignment, ie drop the data
	  if it can't be parsed.
	  If the AU contains more than one NAL unit any correctly parsed NAL unit
	  in the AU is kept.
	  Fixes #4436
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8976>

2025-05-28 14:19:46 +0200  Stefan Andersson <stefana@axis.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  h26xparse: Bail out if ...finish_frame returns an error
	  For NAL alignment bail out if gst_base_parse_finish_frame returns a flow
	  error.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8976>

2025-05-26 16:55:43 +0200  Stefan Andersson <stefana@axis.com>

	* gst/videoparsers/gsth264parse.c:
	* gst/videoparsers/gsth265parse.c:
	* gst/videoparsers/gsth266parse.c:
	  h26xparse: Prevent assert hitting when discarding NAL unit
	  If using NAL aligment and only dropping part of the AU, the size
	  argument given to gst_base_parse_finish_frame was wrong and this assert
	  in gst_base_parse_finish_frame hit
	  'gst_adapter_available (parse->priv->adapter) >= size' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8976>

2025-06-03 23:05:18 -0400  Daniel Morin <daniel.morin@collabora.com>

	* ext/onnx/gstonnxclient.cpp:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  onnx: produce tensor caps
	  - Add tensor description to srcpads caps
	  onnx: formatting
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9172>

2025-06-05 16:47:02 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/gsttensor.h:
	  gsttensor: adding new datatypes
	  - Adding datatype for string, boolean, complex numbers and special floating
	  point numbers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9172>

2025-06-02 16:00:36 +0530  raghu447 <raghavendra.rao@collabora.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	* gst-libs/gst/analytics/gsttensormeta.c:
	* gst-libs/gst/analytics/gsttensormeta.h:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	  analytics: add a convenient API to retrieve tensor
	  use the API in facedetector tensor decoding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9162>

2025-06-06 18:34:02 +0530  raghu447 <raghavendra.rao@collabora.com>

	* ext/tflite/gsttfliteinference.c:
	  tfliteinference: initialize means and stddevs arrays appropriately
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9189>

2025-06-06 16:24:19 +0200  Jakub Adam <jakub.adam@collabora.com>

	* ext/soundtouch/meson.build:
	  meson: fix building -bad tests with disabled soundtouch
	  Fixes an error from Meson:
	  ../subprojects/gst-plugins-bad/tests/validate/meson.build:16:93: ERROR:
	  Unknown variable "soundtouch_dep"
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9190>

2025-05-12 11:31:32 +0100  Glyn Davies <glyn@solet.io>

	* gst/mpegtsmux/tsmux/tsmuxstream.c:
	  mpegtsmux: Corrections around Teletext handling
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8966>

2025-05-22 10:11:36 -0400  Julian Bouzas <julian.bouzas@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	  lcevcdec: Check for errors after receiving all enhanced and base pictures
	  The LCEVC_ReceiveDecoderBase() and LCEVC_ReceiveDecoderPicture() APIs from the
	  LCEVCdec SDK can return LCEVC_Error if the enhancement data is wrong. This
	  change improves the lcevcdec element to check for those errors and stop the
	  pipeline when that happens.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9057>

2025-06-04 17:56:39 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d11/gstd3d11decoder.cpp:
	  d3d11decoder: Use interlace info in input caps
	  ... instead of relying on only parsed values from bitstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170>

2025-06-04 17:55:51 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12decoder.cpp:
	  d3d12decoder: Use interlace info in input caps
	  ... instead of relying on only parsed values from bitstream.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170>

2025-06-04 03:49:19 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvdecoder.cpp:
	* sys/nvcodec/gstnvh265dec.cpp:
	  nvdec: Use interlace info in input caps
	  ... instead of relying on only parsed values from bitstream.
	  Also parses HEVC specific interlace information
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170>

2025-03-05 15:51:05 +0530  raghu447 <raghavendra.rao@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstfacedetectortensordecoder.c:
	* gst/tensordecoders/gstfacedetectortensordecoder.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: add facedetector tensor decoding support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8600>

2025-06-02 00:59:52 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d11/gstd3d11compositor.cpp:
	  d3d11compositor: Fix negative position handling
	  Negative positions should be cropped out
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9158>

2025-06-01 23:38:27 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12compositor.cpp:
	  d3d12compositor: Fix negative position handling
	  Negative positions should be cropped out
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4249
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9158>

2025-06-01 22:55:53 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12compositor.cpp:
	  d3d12compositor: Fix critical warnings
	  compositor will record rendering commands using multiple threads
	  (i.e., blending commands are recoded using thread pool, and
	  background one is recorded on aggregate thread).
	  And there can be temporary refcount increase (so not writable).
	  Updates fence once all rendering commands have been submitted.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9157>

2025-06-01 22:50:30 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter-unpack.cpp:
	  d3d12converter: Fix fallback upload process
	  Fixing typo
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9157>

2025-05-30 12:41:06 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/bayer/gstrgb2bayer.c:
	  rgb2bayer: Use gst_structure_has_name() instead of g_str_equal() for simplicity
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9146>

2025-05-30 12:40:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/bayer/gstbayer2rgb.c:
	  bayer2rgb: Use gst_structure_has_name() instead of strcmp() for clarity
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9146>

2025-05-30 12:33:09 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/bayer/gstbayer2rgb.c:
	  bayer2rgb: Fix RGB stride calculation
	  This fixes a regression introduced in 4c92d4096e9.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9146>

2025-05-16 13:32:08 +0200  Thibault Saunier <tsaunier@igalia.com>

	* ext/closedcaption/misc.h:
	  general: Stop checking `G_HAVE_GNUC_VARARGS` now that we depend on c99
	  Cleaning up a bit the code now that we can rely on C99 which specifies
	  varargs for macros.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8990>

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

	* gst-libs/gst/vulkan/gstvkinstance.c:
	  vulkan: add best practices validation feature
	  It can be disabled in run-time via the environment variable
	  VK_KHRONOS_VALIDATION_VALIDATE_BEST_PRACTICES=false
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9119>

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

	* gst-libs/gst/vulkan/gstvkinstance.c:
	  vulkan: remove vkDebugReportMessage() loading
	  Since it's not used.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9119>

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

	* gst-libs/gst/vulkan/gstvkinstance.c:
	  vulkan: use VK_EXT_debug_utils if available
	  Nowadays VK_EXT_debug_report is considered deprecated and it's recommended to
	  replace it it VK_EXT_debug_utils, which offer a way to ignore messages
	  considered false positives.
	  The approach is to try the extension first, if available at compilation time, if
	  not or if it fails to load, VK_EXT_debug_report fallbacks.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9119>

2025-05-30 00:07:25 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12dxgicapture.cpp:
	  d3d12screencapturesrc: Fix desktop handle leak
	  Calling CloseDesktop() on a handle that is currently in use will fail.
	  Close the handle after current desktop handle change
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9136>

2025-05-29 14:30:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst/dvbsuboverlay/gstdvbsuboverlay.c:
	  dvbsuboverlay: Actually make use of subtitle running time instead of using PTS
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4446
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9123>

2025-05-27 13:47:27 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/webrtc/rtpsender.c:
	  rtpsender: fix 'priority' GValue get/set
	  - 'priority' is declared as enum, we need to use g_value_[get|set]_enum()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9105>

2025-05-21 10:10:25 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/mpegtsdemux/tsdemux.c:
	  tsdemux: Ensure AC3 descriptor is long enough before accessing
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>

2025-05-21 10:03:09 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/wpe/gstwpesrcbin.cpp:
	* gst/rist/gstristsink.c:
	* gst/sdp/gstsdpsrc.c:
	  gstreamer: Ensure we free the template
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9044>

2025-05-26 19:07:22 +0300  Sebastian Dröge <sebastian@centricular.com>

	* gst-libs/gst/play/gstplay.c:
	  play: Improve stream selection
	  - Unset stream ids if a collection does not contain them
	  - Automatically select a default stream of a type if the stream type is
	  enabled but no stream is selected yet when receiving the stream collection
	  - Warn if there's a collection update via streams-selected and if there are
	  unexpected streams being selected, or actually selected streams not being
	  found
	  - Improve debug output a bit
	  Among other things this also makes sure that we don't forget a selected stream
	  id when disabling a track so that when enabling it again later the same one can
	  be enabled again.
	  See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4344
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9081>

2025-05-27 00:03:05 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvencoder.cpp:
	  nvencoder: Fix GstNvEncTask leak on non-flow-ok return
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078>

2025-05-26 23:17:15 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvencoder.cpp:
	  nvencoder: Fix GstVideoCodecFrame leak on non-flow-ok return
	  ... and use gst_video_encoder_release_frame() to drop frame
	  instead of gst_video_encoder_finish_frame()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9078>

2025-05-24 14:42:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: Fix seeking after EOS
	  The alpha_eos state was not being reset on flush-stop, as a side effect
	  flushing seek after EOS did not work.
	  Fixes #4442
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9069>

2025-05-26 17:20:05 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12memory.cpp:
	  d3d12memory: Allow set_fence() only against writable memory
	  Setting a fence to memory should only be allowed on the side
	  that modified that memory or has the right to modify it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9075>

2025-05-26 18:25:58 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Enable GIR for MSVC build as well
	  cerbero issue should be fixed by
	  https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1824
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9076>

2025-05-26 18:24:01 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12memory.h:
	  d3d12memory: Make D3D12 map flags inspectable
	  GIR scanner does not seem to be able to infer integer value
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9076>

2025-05-23 16:02:43 -0300  L. E. Segovia <amy@centricular.com>

	* gst/bayer/gstbayerorc-dist.c:
	* gst/bayer/gstbayerorc-dist.h:
	* gst/fieldanalysis/gstfieldanalysisorc-dist.c:
	* gst/fieldanalysis/gstfieldanalysisorc-dist.h:
	* gst/gaudieffects/gstgaudieffectsorc-dist.c:
	* gst/gaudieffects/gstgaudieffectsorc-dist.h:
	* gst/videofilters/gstscenechangeorc-dist.c:
	* gst/videofilters/gstscenechangeorc-dist.h:
	* meson.build:
	  orc: Update pregenerated files
	  Fixes -Wtype-limits on gstbayer.orc when emulating convuuslw.
	  Regenerated Orc files use OrcOnce, which increases the minimum version to 0.4.34.
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/212 (ORC_MIN)
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/238 (AVX2 convussql)
	  See https://gitlab.freedesktop.org/gstreamer/orc/-/commit/8a86d517530ce79c0ae47e37d768107c57ab31c4 (OrcOnce)
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>

2025-05-23 13:04:43 -0300  L. E. Segovia <amy@centricular.com>

	* scripts/update-orc-dist-files.py:
	  orc: Remove references to gst-indent-1.0
	  These are automatically handled by pre-commit now.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>

2025-03-30 01:43:33 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/dash_mpd.c:
	  dash: mpdclient: Re-enable test now that mpdclient is fixed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8734>

2025-03-30 01:41:10 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/dash/gstmpdclient.c:
	  dash: mpdclient: Don't pass terminating NUL to adapter
	  libxml2 will complain if it detects any characters after the valid
	  XML, including a NUL byte.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8734>

2025-05-23 09:16:00 +0200  Jan Schmidt <jan@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Use strlcpy instead of strncpy
	  Silences a compiler warning, and there's no cross-platform
	  consideration as this plugin is apple-only
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9058>

2025-05-21 20:29:06 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* meson.options:
	  meson: Add a monorepo-wide qt-method option and yield to it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>

2025-05-21 20:23:01 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* ext/qt6d3d11/meson.build:
	* meson.options:
	* tests/examples/qt6d3d11/meson.build:
	  meson: Fix qt detection for qt6d3d11 plugin
	  This now matches the code for the qml6gl plugin.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9046>

2025-05-20 22:32:36 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Generate gir file
	  Prerequisite for rust binding
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9053>

2025-05-22 19:12:03 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12device.cpp:
	* gst-libs/gst/d3d12/gstd3d12memory.cpp:
	  d3d12: Fix docs annotations
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9053>

2025-05-14 20:07:52 +0200  Robert Mader <robert.mader@collabora.com>

	* gst-libs/gst/wayland/gstwlvideoformat.c:
	  wayland: Remove custom format mapping
	  As of Gst >= 1.24 we can just use GstVideoInfoDmaDrm APIs. Note
	  that SHM formats match DRM ones with only two exceptions.
	  No functional changes intended (for backporting) apart from
	  supporting a few more formats - those present in video-info-dma.c
	  but missing in the removed mapping.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8983>

2025-05-16 05:02:37 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/meson.build:
	  tflite: Also look for C symbols in libtensorflow-lite
	  For some builds, there isn't a separate C library such as
	  some Yocto builds of tflite.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2025-05-09 20:19:27 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/VX/vsi_npu_custom_op.h:
	  tflite: Make VSI header build in C code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2025-04-06 12:05:48 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/tflite/gsttflite.c:
	* ext/tflite/gsttfliteedgetpuinference.c:
	* ext/tflite/gsttfliteedgetpuinference.h:
	* ext/tflite/gsttfliteinference.c:
	* ext/tflite/gsttfliteinference.h:
	* ext/tflite/meson.build:
	* meson.options:
	  tflite: Add Coral EdgeTPU inference element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2024-03-09 13:42:22 -0300  Denis Shimizu <denis.shimizu@collabora.com>

	* ext/meson.build:
	* ext/tflite/README.md:
	* ext/tflite/VX/vsi_npu_custom_op.cc:
	* ext/tflite/VX/vsi_npu_custom_op.h:
	* ext/tflite/gstml.h:
	* ext/tflite/gsttflite.c:
	* ext/tflite/gsttfliteinference.c:
	* ext/tflite/gsttfliteinference.h:
	* ext/tflite/meson.build:
	* ext/tflite/modelinfo.c:
	* ext/tflite/modelinfo.h:
	* meson.options:
	  tflite: Add TensorFlow Lite element
	  A new element wrapping the LiteRT (aka TensorFlow Lite) inference engine.
	  It currently supports only CPU.
	  Co-authored-by: Daniel Morin <daniel.morin@collabora.com>
	  Co-authored-by: Denis Shimizu <denis.shimizu@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2024-11-22 21:32:18 -0500  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/analytics/gsttensor.c:
	* gst-libs/gst/analytics/gsttensor.h:
	  tensor: Add helper function to stringify a tensor data type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8523>

2025-05-19 20:38:56 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/meson.build:
	  d3d12: Fix gstreamer-full subproject build with gcc
	  Since default option "cpp_std=c++14" is not applied automatically
	  in case that gstreamer is used as a meson subproject, specify
	  cpp_std option explicitly
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9030>

2025-05-13 08:20:53 -0400  Doug Nazar <nazard@nazar.ca>

	* tests/check/elements/audiovisualizer.c:
	  audiovisualizer: Change test to use native endian audio format
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8975>

2025-05-13 17:35:14 +0300  Jordan Petridis <jordan@centricular.com>

	* tests/check/gst-plugins-bad.supp:
	  bad: Add more variants for an srt suppression
	  Followup to 087cb87d27e268d55a8d152690870ac4a2b3e166
	  These are some more variants of the same issue we
	  already suppressed in the commit above.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>

2025-05-12 16:30:10 +0300  Jordan Petridis <jordan@centricular.com>

	* gst-libs/gst/opencv/meson.build:
	  opencv: import as system dep
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>

2025-05-12 16:29:48 +0300  Jordan Petridis <jordan@centricular.com>

	* gst/bayer/gstbayer2rgb.c:
	  bad: Avoid gcc false positive about variable initialization
	  In gstbayer2rgb the dtmp always gets initialized when
	  we check for bayersrc16.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8979>

2025-05-14 14:36:49 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/videoframe_audiolevel/gstvideoframe-audiolevel.c:
	  videoframe-audiolevel: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984>

2025-05-14 14:36:01 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/musepack/gstmusepackdec.c:
	  musepack: Switch to GST_AUDIO_NE()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8984>

2025-05-13 19:37:59 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/transcode/gsturitranscodebin.c:
	  uritranscodebin: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

2025-05-13 19:35:58 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/transcode/gsttranscodebin.c:
	  transcodebin: Free various props before being set
	  Also disable setting filters more than once.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

2025-05-13 19:34:59 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/vulkan/gstvkwindow.c:
	  vulkan: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

2025-05-13 19:23:53 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/transcoder/gsttranscoder.c:
	  transcoder: Free various props before during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

2025-05-13 19:15:21 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/player/gstplayer-g-main-context-signal-dispatcher.c:
	* gst-libs/gst/player/gstplayer.c:
	* gst-libs/gst/transcoder/gsttranscoder.c:
	* gst-libs/gst/vulkan/gstvkdevice.c:
	* gst-libs/gst/vulkan/gstvkoperation.c:
	* gst-libs/gst/vulkan/gstvkphysicaldevice.c:
	* gst-libs/gst/webrtc/rtptransceiver.c:
	* sys/applemedia/videotexturecache-gl.m:
	* sys/applemedia/videotexturecache-vulkan.mm:
	* sys/d3d11/gstd3d11dxgicapture.cpp:
	* sys/d3d11/gstd3d11window.cpp:
	* sys/d3d11/gstd3d11winrtcapture.cpp:
	* sys/va/gstvadecoder.c:
	* sys/va/gstvaencoder.c:
	* sys/va/gstvafilter.c:
	* sys/webview2/gstwebview2object.cpp:
	  all: Annotate *_set_property() contructor only props without free
	  Properties that are marked constructor only aren't required to be freed
	  before g_value_dup_*() as they can only be called once during construction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8978>

2025-05-13 01:40:57 +0900  Seungha Yang <seungha@centricular.com>

	* sys/d3d12/gstd3d12decoder.cpp:
	  d3d12decoder: Workaround for NVIDIA crash on resolution change
	  Recent NVIDIA driver seems to crash on resolution change
	  if ID3D12VideoDecoder and ID3D12VideoDecodeCommandList are reused.
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4415
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8968>

2025-05-12 18:27:06 -0400  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/h264parse.c:
	  h264parse test: Ensure avc3 caps include a codec_data
	  The avc3 caps without a codec_data are just totally invalid
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

2025-05-08 19:20:13 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Require codec_data when receiving stream-format=avc or avc3
	  It's not really possible to safely interpret the content afterwards if
	  it's missing.
	  Even for AVC3, the codec_data doesn't need to contain a SPS/PPS, but
	  it still needs to be present to tell downstream elements about the size
	  of the nal unit length field.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

2025-05-08 19:16:13 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst/videoparsers/gsth264parse.c:
	  h264parse: Never output stream-format=avc/avc3 caps without codec_data
	  It's not possible to interpret further buffers without knowing the nal_length_size
	  field, so avc1/avc3 caps without the codec_data aren't valid, don't push them out.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

2025-05-12 16:40:05 -0400  Olivier Crête <olivier.crete@collabora.com>

	* tests/check/elements/h264parse.c:
	  h264parse test: Send PPS in SPS parsing test
	  Without the PPS, the codec_data can not be created
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8955>

2025-02-25 22:53:30 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvjpegenc.cpp:
	* sys/nvcodec/gstnvjpegenc.h:
	* sys/nvcodec/plugin.c:
	  nvjpegenc: Add autogpu mode element
	  Similar to nvautogpu{h264,h265,av1}enc, adding auto gpu select mode
	  element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8555>

2025-02-25 21:22:46 +0900  Seungha Yang <seungha@centricular.com>

	* sys/nvcodec/gstnvjpegenc.cpp:
	  nvjpegenc: Use stream-ordered alloc if requested
	  If user requested stream-ordered allocation, use async alloc/free
	  methods
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8555>

2025-04-10 11:22:29 +0530  Santosh Mahto <santosh.mahto@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	  gstanalytics: Add transform function to copy the tensor meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8825>

2025-05-05 17:38:08 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst/tensordecoders/gstclassifiertensordecoder.c:
	  analytics: change tensor-id and use new API
	  - tensor-id changed to match tensor-id-registry at https://github.com/collabora/tensor-id-registry
	  - Use new GstTensorMeta API to get tensor.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8548>

2025-02-24 11:15:29 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstclassifiertensordecoder.c:
	* gst/tensordecoders/gstclassifiertensordecoder.h:
	* gst/tensordecoders/gsttensordecoders.c:
	* gst/tensordecoders/meson.build:
	  tensordecoder: add general classifier tensor-decoder
	  - Classification output is more standard compare to other tensor-decoder.
	  - This tensor-decoder implement a standard classification tensor-decoder.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8548>

2025-05-02 15:46:26 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst/removesilence/gstremovesilence.c:
	  removesilence: canonicalize property names
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>

2025-05-02 10:08:31 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* ext/opencv/gsthanddetect.cpp:
	  handdetect: canonicalize property names
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>

2025-05-02 08:56:19 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* ext/aes/gstaesdec.c:
	* ext/chromaprint/gstchromaprint.c:
	* ext/iqa/iqa.c:
	* ext/openal/gstopenalsink.c:
	* ext/openal/gstopenalsrc.c:
	* ext/opencv/gstcvtracker.cpp:
	* ext/opencv/gsthanddetect.cpp:
	* ext/opencv/gstsegmentation.cpp:
	* ext/qroverlay/gstbaseqroverlay.c:
	* ext/qroverlay/gstdebugqroverlay.c:
	* ext/sndfile/gstsfsrc.c:
	* ext/spandsp/gsttonegeneratesrc.c:
	* ext/x265/gstx265enc.c:
	* gst-libs/gst/mse/gstsourcebuffer.c:
	* gst-libs/gst/transcoder/gsttranscoder-signal-adapter.c:
	* gst-libs/gst/uridownloader/gstfragment.c:
	* gst/accurip/gstaccurip.c:
	* gst/proxy/gstproxysrc.c:
	* gst/removesilence/gstremovesilence.c:
	* sys/bluez/gsta2dpsink.c:
	* sys/bluez/gstavdtpsink.c:
	* sys/bluez/gstavdtpsrc.c:
	* sys/directshow/dshowvideosink.cpp:
	* sys/directshow/gstdshowvideosrc.cpp:
	* sys/directsound/gstdirectsoundsrc.c:
	* sys/dvb/gstdvbsrc.c:
	* sys/fbdev/gstfbdevsink.c:
	* sys/kms/gstkmsallocator.c:
	  properties: add G_PARAM_STATIC_STRINGS where missing
	  "Hold on, I know you need to generate the registry, but let me just
	  create copies of all those strings first", Framework whispered
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8915>

2025-05-08 19:23:54 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/cuda/cudamemory-sync.c:
	* tests/examples/cuda/meson.build:
	  examples: cuda: Fix build with old CUDA SDK
	  Some symbols are not available in old cuda headers.
	  Use our stub headers instead
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8950>

2025-05-08 19:18:32 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/cuda/gstcudanvrtc.cpp:
	  cuda: Fix runtime PTX compile
	  Handle extra option args
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8950>

2025-03-11 15:02:03 +0100  Pablo García <pgarcia@fluendo.com>

	* ext/curl/gstcurlbasesink.c:
	  curl: use CURL_SOCKET_BAD to ensure cross-platform
	  Solves this error in Windows build:
	  ../ext/curl/gstcurlbasesink.c:1154:14: error: comparison of unsigned
	  expression in '< 0' is always false [-Werror=type-limits]
	  1154 |   if (curlfd < 0) {
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8615>

2025-05-05 17:51:55 +0000  L. E. Segovia <amy@centricular.com>

	* ext/curl/gstcurlfilesink.c:
	* ext/curl/gstcurlhttpsink.c:
	* ext/curl/gstcurlsmtpsink.c:
	  curl: Fix build with MSVC
	  See https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1740#note_2895537
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8932>

2025-04-17 15:41:05 -0400  Xavier Claessens <xclaessens@netflix.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/unixfd/gstunixfdallocator.c:
	* gst/unixfd/gstunixfdallocator.h:
	* gst/unixfd/gstunixfdsink.c:
	* gst/unixfd/meson.build:
	* tests/check/elements/unixfd.c:
	  unifxfdsink: Add an property to allow copying
	  By design, unixfd is meant to be used for zero-copy and failing when the data is
	  not FD based memory is wanted to help debug pipelines. Though, there exists
	  cases, notably with RTP payloader and demuxers, where its not possible
	  to get all the data into FD memory through allocation queries.
	  To allow using unixfd for these cases, introduce a property on the unixfdsink
	  that enable copying the non FD data into freshly allocated memfd.
	  Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8861>

2025-03-27 16:48:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/meson.build:
	* gst/y4m/gsty4mdec.c:
	* gst/y4m/gsty4mdec.h:
	* gst/y4m/meson.build:
	* meson.options:
	  y4m: move y4mdec to good to have a single y4m plugin
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8719>

2025-04-26 03:20:42 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* gst-libs/gst/webrtc/datachannel.c:
	  webrtc: fix build with -DGST_REMOVE_DEPRECATED
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8901>

2025-03-15 20:56:17 +0100  Tim-Philipp Müller <tim@centricular.com>

	* meson.options:
	  meson: rename meson_options.txt to meson.options
	  Which is supported since Meson 1.1:
	  https://mesonbuild.com/Release-notes-for-1-1-0.html#support-for-reading-options-from-mesonoptions
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8651>

2025-05-01 15:16:22 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/lcevcdecoder/gstlcevcdec.c:
	  lcevcdec: Use portable printf formatting macros
	  This should fix 32bit builds
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8926>

2025-05-01 15:30:28 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/lcevcencoder/gstlcevcencoder.c:
	  lcevcenc: Use portable printf formatting macros
	  This should fix 32bit builds
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8926>

2025-04-25 00:25:53 +0900  Seungha Yang <seungha@centricular.com>

	* tests/examples/d3d12/d3d12remap-fisheye.cpp:
	* tests/examples/d3d12/meson.build:
	  examples: Add d3d12remap example
	  Adding a fisheye image transform example using d3d12remap element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887>

2025-04-24 00:36:03 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12compat.h:
	* sys/d3d12/gstd3d12remap.cpp:
	* sys/d3d12/gstd3d12remap.h:
	* sys/d3d12/meson.build:
	* sys/d3d12/plugin.cpp:
	  d3d12: Add d3d12remap element
	  Adding new element to support pixel remapping operation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887>

2025-04-20 23:33:16 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d11/gstd3d11converter.cpp:
	* gst-libs/gst/d3d12/gstd3d12converter-builder.cpp:
	* gst-libs/gst/d3d12/gstd3d12converter-private.h:
	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	* gst-libs/gst/d3dshader/converter-hlsl/PSMain_converter.hlsl:
	  d3d12converter: Add support UV remap
	  Adding OpenCV's cv::remap() like feature
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887>

2025-02-08 22:44:47 +0800  Zhao, Gang <gang.zhao.42@gmail.com>

	* gst/midi/midiparse.c:
	  midiparse: Quit parsing if error occurred
	  Invalid midi files will crash gstreamer or let it enter infinite
	  loop. Fixed it by quit parsing if error is encountered.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8396>

2025-02-03 13:53:09 +0800  Zhao, Gang <gang.zhao.42@gmail.com>

	* gst/midi/midiparse.c:
	* gst/midi/midiparse.h:
	  midiparse: Consider tempo change when calculating duration
	  Midi meta event set tempo would change tempo. Should consider tempo
	  change when calculating buffer PTS / duration.
	  Save tempo change to a list and calculate duration according to the
	  list.
	  Fixed #4158
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8396>

2025-04-03 02:24:13 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tests/check/meson.build:
	  gst-examples: Port all webrtc examples to libsoup-3.0
	  Also do some indent changes, and add `static` while we're at it.
	  And move the libsoup wrap to 3.6.5, add nghttp2 wrap
	  We need to disable libsoup 3.0 tests because they fail to build on
	  Windows.
	  Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1115
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753>

2025-04-01 17:58:14 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* tests/check/meson.build:
	  meson: Add include_type: 'system' everywhere to squelch wrap warnings
	  Wrap dependencies add a ton of warnings with the latest GCC in Fedora
	  42. Squelch them by specifying that these dependencies are not
	  a part of the gstreamer project, and should be treated as system deps.
	  libsoup needs some porting work for the bump, and vorbis/lame are
	  already at their latest releases.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8753>

2025-04-28 09:51:23 +0100  Philippe Normand <philn@igalia.com>

	* ext/meson.build:
	* ext/wpe2/gstwpe.h:
	* ext/wpe2/gstwpe2.cpp:
	* ext/wpe2/gstwpedisplay.cpp:
	* ext/wpe2/gstwpedisplay.h:
	* ext/wpe2/gstwpethreadedview.cpp:
	* ext/wpe2/gstwpethreadedview.h:
	* ext/wpe2/gstwpetoplevel.cpp:
	* ext/wpe2/gstwpetoplevel.h:
	* ext/wpe2/gstwpevideosrc.cpp:
	* ext/wpe2/gstwpevideosrc.h:
	* ext/wpe2/gstwpeview.cpp:
	* ext/wpe2/gstwpeview.h:
	* ext/wpe2/meson.build:
	* meson_options.txt:
	  wpe2: New WPE plugin making use of the "WPE Platform API"
	  Currently only a wpevideosrc2 element is exposed. GL and SHM buffer rendering
	  are supported, navigation events too (touch is un-tested). Audio pads handling
	  is not supported yet (that requires new WPE API).
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8789>

2025-04-25 16:36:37 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  nice: Add function to fill in ufrag/pwd of remote candidates
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8900>

2025-04-25 16:33:39 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  nice: Rename local candidate filling function
	  Rename it, and avoid using it on remote candidates, as it will put
	  the wrong value.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8900>

2025-04-25 16:32:59 -0400  Olivier Crête <olivier.crete@collabora.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  nice: Don't modify struct borrowed by signal
	  The struct is owned by libnice, you can't safely modify it
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8900>

2025-04-26 19:28:56 +0200  Alexander Slobodeniuk <aslobodeniuk@fluendo.com>

	* ext/bs2b/gstbs2b.c:
	* ext/gtk/gstgtkwaylandsink.c:
	* ext/srt/gstsrtsink.c:
	* ext/srt/gstsrtsrc.c:
	* ext/vulkan/vkcolorconvert.c:
	* ext/vulkan/vkdownload.c:
	* ext/vulkan/vkimageidentity.c:
	* ext/vulkan/vkoverlaycompositor.c:
	* ext/vulkan/vkshaderspv.c:
	* ext/vulkan/vkupload.c:
	* ext/vulkan/vkviewconvert.c:
	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/transportreceivebin.c:
	* ext/webrtc/transportsendbin.c:
	* gst/accurip/gstaccurip.c:
	* gst/netsim/gstnetsim.c:
	* gst/rist/gstristrtpdeext.c:
	* gst/rist/gstristrtpext.c:
	* gst/rist/gstristsink.c:
	* gst/rist/gstristsrc.c:
	* gst/rist/gstroundrobin.c:
	* sys/amfcodec/gstamfav1enc.cpp:
	* sys/amfcodec/gstamfh264enc.cpp:
	* sys/amfcodec/gstamfh265enc.cpp:
	* sys/applemedia/avfvideosrc.m:
	* sys/applemedia/avsamplevideosink.m:
	* sys/nvcodec/gstnvvp8dec.cpp:
	* sys/nvcodec/gstnvvp9dec.cpp:
	* sys/uvcgadget/gstuvcsink.c:
	* tests/check/elements/test_http_src.c:
	  elements: use set_static_metadata when it's allowed
	  Those strings are nice but CPU doesn't want to copy them
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8905>

2025-04-18 15:21:59 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test:analytics: add more test on tracking mtd
	  - Verify we can retrive tracking-mtd and its data
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8868>

2025-03-15 23:48:52 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Fix num_long_term_pics bound check
	  As defined in the spec 7.4.7.1, calculates allowed maximum
	  value of num_long_term_pics
	  Fixes ZDI-CAN-26596
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4285
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8884>

2025-03-15 22:39:44 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Fix max_dec_pic_buffering_minus1 bound check
	  Allowed max value is MaxDpbSize - 1
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8884>

2025-04-24 07:48:12 +0200  Jochen Henneberg <jochen@centricular.com>

	* sys/va/gstvah264enc.c:
	  va: Fix H264 profile decision logic
	  The current logic would choose 'baseline' profiles only in case that
	  these profiles appear in the list first.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8882>

2025-04-17 17:28:17 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* sys/va/gstvaav1enc.c:
	  vaav1enc: fix mem leaks in _av1_decide_profile
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8845>

2025-04-15 16:46:23 +0200  Stéphane Cerveau <scerveau@igalia.com>

	* sys/va/gstvavp9enc.c:
	  vavp9enc: fix mem leaks in _vp9_decide_profile
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8845>

2025-04-23 09:28:16 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/aja/plugin.cpp:
	  aja: Use the correct location of the AJA NTV2 SDK in the docs
	  Also there is no longer a proprietary version of it.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4381
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8874>

2025-04-21 22:59:18 +0200  Jakub Adam <jakub.adam@collabora.com>

	* sys/va/gstvavpp.c:
	  vapostproc: fix wrong video orientation after restarting the element
	  After READY -> NULL -> READY state change, the configured video
	  orientation didn't get applied on the new GstVaFilter instance.
	  Resettig prev_direction to default value in update_properties ensures
	  gst_va_filter_set_orientation() isn't inadvertently skipped.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8871>

2025-04-14 18:24:52 +0300  Sebastian Dröge <sebastian@centricular.com>

	* ext/x265/gstx265enc.c:
	  x265enc: Add bitrate tags to the output
	  Based on the same code in x264enc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8838>

2020-03-23 13:45:46 +0000  jan vermaete <jan.vermaete@gmail.com>

	* ext/opencv/gstmotioncells.h:
	  motioncells: fix typo in header comment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8867>

2025-04-17 04:40:12 -0600  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Reverted ownership change for append method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8857>

2025-04-18 00:45:07 +0900  Seungha Yang <seungha@centricular.com>

	* sys/wasapi2/gstwasapi2ringbuffer.cpp:
	  wasapi2: Log buffer QPC position and status flags
	  Log all infos of IAudioCaptureClient::GetBuffer
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8859>

2025-04-09 13:47:54 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Improve spec compliance for ICE candidate stats
	  We now fill the foundation, related-address, related-port, username-fragment and
	  tcp-type fields.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8792>

2025-04-17 11:15:08 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  doc: Update cache for plugins automatically picks NV16_10LE40
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>

2023-11-06 15:19:33 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* sys/v4l2codecs/gstv4l2format.c:
	* sys/v4l2codecs/gstv4l2format.h:
	* sys/v4l2codecs/linux/videodev2.h:
	  v4l2codecs: Add Rockchip 8bit/10bit 422 formats
	  This enable NV16 and NV16_10LE40 formats. These formats are
	  produced by notably rkvdec driver.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>

2023-11-06 15:16:41 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>

	* gst/interlace/gstinterlace.c:
	  video: Add 10bit 422 NV16_10LE40 format
	  Similar to NV12_10LE40, this is a 422 variant. This format is also named
	  NV20 (20bit per pixels) in other stack and is produced by rkvdec
	  decoder.
	  Co-authored-by: Sebastian Fricke <sebastian.fricke@collabora.com>
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5612>

2025-02-25 15:50:42 +0100  Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>

	* gst/mpegtsmux/gstbasetsmux.c:
	  mpegtsmux: Read prog-map[PMT_ORDER_<PID>] for PMT order key
	  Right now the prog-map's meaning of `PMT_%d` is overloaded:
	  - PMT_<PGM> is used to look up the PID for the PMT.
	  - PMT_<PID> is used to look up ordering keys for streams in the PMT.
	  This is not a problem in practice because program numbers and PES PIDs
	  shouldn't overlap. Still, it's quite the wart in the API.
	  Provide "PMT_ORDER_%d" as an unambiguous way of specifying ordering
	  keys.
	  See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1510#note_2790022
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8584>

2025-04-16 21:17:07 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/d3d12/gstd3d12converter.cpp:
	  d3d12converter: Fix cropping when automatic mipmap is enabled
	  Update vertex buffer and viewport of extra shader pipeline as well
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8851>

2025-04-15 16:28:38 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test: add test for tensor-meta
	  - Verify we can add a tensor-meta to a buffer
	  - Verify we can get a tensor from a tensor-meta
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8848>

2025-04-10 09:58:57 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/gsttensormeta.c:
	* gst-libs/gst/analytics/gsttensormeta.h:
	  analytics: add more convenient API to retrieve tensor
	  `gst_tensor_meta_get_by_id (meta,id)' is more convenient then
	  retrieving the tensor index using `gst_tensor_meta_get_index_from_id()` followed
	  by `gst_tensor_meta_get ()`.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8848>

2025-04-10 15:44:54 -0400  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* gst/tensordecoders/gstssdobjectdetector.c:
	  tensordecoders: updating element classification
	  - `TensorDecoder` is clashing with media decoder which cause decodebin use it.
	  Replacing with `Tensordecoder` to avoid clash
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8819>

2025-04-09 16:19:54 -0400  Daniel Morin <daniel.morin@collabora.com>

	* tests/check/libs/analyticsmeta.c:
	  test: add test for gstanalytics utility
	  - IoU test
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8805>

2025-04-09 20:36:40 -0400  Daniel Morin <daniel.morin@collabora.com>

	* gst-libs/gst/analytics/analytics.h:
	* gst-libs/gst/analytics/gstanalytics_image_util.c:
	* gst-libs/gst/analytics/gstanalytics_image_util.h:
	* gst-libs/gst/analytics/meson.build:
	  analytics: Move IoU calculation to gstanalytics lib
	  Calculating intersection-of-union (IoU) is a very common operation used by
	  tensor-decoder handling tensors from vision models. Having this in a library
	  will improve maintainability and ease of writing tensor-decoder.
	  - Post-fix _uint: We might eventually want to handle different datatype that we
	  woule post-fix with _type
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8805>

2025-04-12 15:02:38 +0900  Andrew Yooeun Chun <aychun00@gmail.com>

	* sys/v4l2codecs/plugin.c:
	  v4l2codecs: fix typos in the documentation
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8829>

2025-01-10 14:34:54 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* ext/vulkan/vkh265dec.c:
	  vkh265dec: add main-10 support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8282>

2025-01-10 14:30:54 +0100  Stéphane Cerveau <scerveau@igalia.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: add NV12 10 bits support
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8282>

2025-04-10 14:23:59 +0200  Carlos Bentzen <cadubentzen@igalia.com>

	* gst-libs/gst/codecs/gsth266decoder.c:
	  h266decoder: fix leak parsing SEI messages
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8814>

2025-04-08 15:08:11 -0400  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/gstv4l2codech264dec.c:
	* sys/v4l2codecs/gstv4l2codech265dec.c:
	* sys/v4l2codecs/gstv4l2codecmpeg2dec.c:
	  v4l2codecs: Unref the frame before leaving on error
	  In h264, h265 and mpeg2, make sure that dec_submit_bitstream() doesn't leak
	  a frame when dec_ensure_output_buffer() fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794>

2025-04-08 09:30:31 -0400  Detlev Casanova <detlev.casanova@collabora.com>

	* sys/v4l2codecs/gstv4l2codecav1dec.c:
	* sys/v4l2codecs/gstv4l2codecvp9dec.c:
	  v4l2codecs: av1,vp9: Use temporary variable for buffer
	  This makes the end_picture() function handle the frame in the same way
	  as in vp8, which also fixes a frame leak when
	  gst_buffer_pool_acquire_buffer() fails.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8794>

2025-04-09 09:01:22 -0400  Xavier Claessens <xclaessens@netflix.com>

	* sys/va/meson.build:
	  Revert "va: h266 requires libva 2.22.0"
	  This reverts commit 8c017c79c5736c9e45e635df210e08550287646d.
	  1.22 was the correct pkg-config version. It's only the subproject
	  version that was wrong. Since we bumped libva.wrap to 2.22 version, h266
	  is now always available when using the subproject.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8800>

2025-04-07 17:45:28 -0400  Xavier Claessens <xclaessens@netflix.com>

	* sys/va/meson.build:
	  va: h266 requires libva 2.22.0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8788>

2025-04-07 18:37:01 +0100  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  Revert "webrtc: stats: Increase spec compliance for ICE candidate stats"
	  This reverts commit 4718fc9be72ccbbb9278c9abe7d72106e161aebf.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>

2025-04-07 18:36:39 +0100  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/ice.h:
	  Revert "webrtc: Add missing Since markers to new ICE API"
	  This reverts commit 601c772447b0bada8e54d097088b8ea51ecba09a.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8787>

2025-04-04 12:18:24 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: unblock when alpha sink is eos
	  If the alpha sink receives EOS while the other thread was waiting for a
	  alpha buffer it was stuck waiting forever.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775>

2025-04-02 09:58:26 +0200  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/codecalpha/gstalphadecodebin.c:
	* sys/v4l2codecs/gstv4l2codecalphadecodebin.c:
	* sys/va/gstvacodecalphadecodebin.c:
	  alphadecodebin: use a multiqueue instead of a couple of queues
	  Fix gapless playback as queues are no longer stopped after the first
	  eos.
	  Co-authored-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
	  Fix #4165
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8775>

2024-11-27 23:12:18 +0100  Jakub Adam <jakub.adam@collabora.com>

	* gst/unixfd/gstunixfdsrc.c:
	  unixfdsrc: fix allocating FD memory with nonzero offsets
	  The element should allocate GstFdMemory large enough to fit incoming
	  memory's size plus its potential offset.
	  Fixes "gst_memory_resize: assertion 'size + mem->offset + offset <=
	  mem->maxsize' failed".
	  Fixes an issue reproducible on Raspberry Pi 4 that results in a garbled
	  image on the receiver's end:
	  gst-launch-1.0 libcamerasrc ! unixfdsink socket-path=/tmp/socket
	  gst-launch-1.0 unixfdsrc socket-path=/tmp/socket ! autovideosink
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8025>

2025-04-03 13:43:55 +1100  Matthew Waters <matthew@centricular.com>

	* gst-libs/gst/webrtc/ice.h:
	  webrtc: Add missing Since markers to new ICE API
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-03-26 14:00:33 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/gstwebrtcstats.c:
	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/ice.h:
	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/webrtc_fwd.h:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Increase spec compliance for ICE candidate stats
	  We now fill the foundation, related-address, related-port, username-fragment and
	  tcp-type fields.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-03-26 10:38:06 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcstats.c:
	* tests/check/elements/webrtcbin.c:
	  webrtc: stats: Fill data-channel transport stats
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-02-15 11:41:57 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	* gst-libs/gst/webrtc/nice/niceutils.h:
	  webrtc: nice: Add niceutils
	  The gst_webrtc_nice_get_candidate_server_url() function is going to be used for
	  stats generation purposes and also from the upcoming get_selected_candidate_pair
	  implementation.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-02-15 11:15:31 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Make use of nice_candidate_type_to_string
	  This API was added in libnice 0.1.19 and we currently require 0.1.20.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-02-15 11:14:30 +0000  Philippe Normand <philn@igalia.com>

	* gst-libs/gst/webrtc/nice/nice.c:
	  webrtc: nice: Remove unused libnice utilities
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8698>

2025-03-30 13:04:12 +0300  Razvan Grigore <razvan.grigore@vampirebyte.ro>

	* ext/webrtc/gstwebrtcbin.c:
	  webrtcbin: add missing warning for caps missmatch
	  This helps debug cases when the remote is offerer and m-line does not match with already existing transceivers.
	  In this case, it will create new ones with sendrecv direction without any warning.
	  Similar with code from _create_answer_task
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8735>

2025-03-26 01:33:57 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gsth265reorder.c:
	* gst-libs/gst/codecparsers/gsth265parser-private.h:
	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	* gst-libs/gst/codecs/gsth265decoder.c:
	  h265parser: Make gst_h265_parser_link_slice_hdr public
	  ... and updating h265decoder/h265ccinserter to match
	  the changed gst_h265_parser_link_slice_hdr method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>

2025-03-26 01:23:45 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth264parser.c:
	* gst-libs/gst/codecparsers/gsth264parser.h:
	  h264parser: Store associated parameter set id
	  Make h264parser and h265parser consistent
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>

2025-03-26 01:13:47 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	* gst-libs/gst/codecparsers/gsth265parser.h:
	  h265parser: Store PPS id in slice header
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8679>

2025-03-04 21:56:39 -0500  Daniel Morin <daniel.morin@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/analyticsoverlay/gstobjectdetectionoverlay.c:
	  analyticsoverlay: add filled-box mode
	  - Add filled-box-mode property, when set region where detection is happening is
	  filled
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8592>

2025-04-03 16:30:52 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  bad: Update va docs, adding new elements
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-04 12:54:27 -0400  Olivier Crête <olivier.crete@collabora.com>

	* sys/va/gstvacodecalphadecodebin.h:
	* sys/va/gstvafilter.c:
	* sys/va/gstvavpp.c:
	* sys/va/meson.build:
	  va: Add since markers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-04 13:20:35 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* sys/va/gstvaav1enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp8enc.c:
	* sys/va/gstvavp9enc.c:
	  va: Remove GstVaFeature marking as a plugin API
	  It's part of the libgstva library and it's documented there, no need
	  to duplicate it as it confuses hotdoc.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 17:39:45 -0400  Olivier Crête <olivier.crete@collabora.com>

	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvavp8dec.c:
	* sys/va/gstvavp9dec.c:
	  va: Add doc section for vah26xlpenc and codecalpha element
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 16:31:30 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  bad: Update wpesrc docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 17:45:57 -0400  Olivier Crête <olivier.crete@collabora.com>

	* ext/wpe/gstwpevideosrc.cpp:
	  wpevideosrc: Fix typo in doc
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 16:22:08 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  bad: Update qsv docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-04 13:20:09 -0400  Olivier Crête <olivier.crete@collabora.com>

	* sys/qsv/gstqsvdecoder.cpp:
	* sys/qsv/gstqsvencoder.cpp:
	  qsv: Add since marker to device-path property
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-03 16:07:20 -0400  Olivier Crête <olivier.crete@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	* ext/onnx/gstonnx.c:
	* ext/onnx/gstonnxclient.h:
	* ext/onnx/gstonnxinference.cpp:
	  bad: Add onnxinference to the docs
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8774>

2025-04-01 16:10:52 +0530  Nirbheek Chauhan <nirbheek@centricular.com>

	* gst-libs/gst/webrtc/ice.c:
	* gst-libs/gst/webrtc/icestream.c:
	  docs: Fix GstWebRTCICE* class documentation
	  IceStream is not an actual object, it's GstWebRTCICEStream
	  Some `Returns:` annotations were improperly formatted and not taking
	  effect.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8755>

2024-09-10 01:13:25 +0200  Michael Grzeschik <m.grzeschik@pengutronix.de>

	* sys/uvcgadget/gstuvcsink.c:
	* sys/uvcgadget/gstuvcsink.h:
	* sys/uvcgadget/uvc.c:
	  uvcsink: Respond to control requests with proper error handling
	  The complete handling on the control interface is currently dead.
	  We return with EOPNOTSUPP for the caller to know that a response
	  to such requests is not valid. The host however may ask
	  control interface why these control requests were not available.
	  For this the UVC_VC_REQUEST_ERROR_CODE_CONTROL is used. As an overall
	  exception for the control interface we just always return 0x06 as
	  an response which is representing "not implemented".
	  This patch is a necessary feature to properly pass the UVC Functionality
	  Test of the USB3CV Compliance Software.
	  Fixes: 69c17461392d ('uvcgadget: Properly implement GET_INFO control responses')
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7524>

2025-03-31 18:54:28 +0200  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/avfvideosrc.m:
	  avfvideosrc: Guess reasonable framerate values for some 3rd party devices
	  For some third-party devices macOS sometimes reports silly framerates,
	  like 750003/6250 instead of 120/1. To avoid users having to exactly
	  pecify those values, we instead report the closest reasonable value in
	  caps. If it ends up being chosen, the additional logic in
	  setDeviceCaps() will reverse that process and pass the actual supported
	  value back to AVF, as most often the rounding causes us to fall just
	  outside the accepted threshold.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8745>

2025-03-07 09:06:18 +0100  Jochen Henneberg <jochen@centricular.com>

	* tests/check/elements/camerabin.c:
	  camerabin: Ensure that test record pipeline does not see caps change
	  Depending on the system load the test 'video_capture_with_tags' may
	  fail or not. Reason is that 'videotestsrc' may emit a buffer before
	  the final caps negotiation on the recording pipeline has happened
	  after dynamic linking.
	  In that case there would be a caps change and because videorate does
	  no longer drop old buffers and caps on change but pushes duplicates if
	  required qtmux will notice a caps change and fail to link.
	  The problem is a synchronization problem in 'camerabin' which became
	  obvious with the changed behaviour of 'videorate'.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8579>

2025-03-31 21:56:51 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gsth264ccextractor.c:
	* ext/closedcaption/gsth265ccextractor.c:
	  h264ccextractor,h265ccextractor: Handle gap with unknown pts
	  Fixing critical warngins
	  gst_event_new_gap: assertion 'GST_CLOCK_TIME_IS_VALID (timestamp)' failed
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8741>

2025-03-27 15:38:42 +0100  Guillaume Desmottes <guillaume.desmottes@onestream.live>

	* gst/codecalpha/gstalphadecodebin.c:
	  codecalpha: name both queues
	  Make it easier to debug from logs.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8744>

2025-03-30 19:44:22 -0400  Doug Nazar <nazard@nazar.ca>

	* gst-libs/gst/vulkan/wayland/gstvkdisplay_wayland.c:
	  vulkan/wayland: Init debug category before usage
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8738>

2025-03-28 12:19:20 +0000  Philippe Normand <philn@igalia.com>

	* ext/webrtc/gstwebrtcbin.c:
	* ext/webrtc/webrtcsdp.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: Make mid optional in offers and answers
	  The mid attribute is not strictly required. Two new tests cover this change,
	  they remove the mid and group attributes from the SDP offers and answers.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8729>

2025-03-29 19:03:13 +0200  Artem Martus <artemmartus2012@gmail.com>

	* ext/webrtc/gstwebrtcbin.c:
	* tests/check/elements/webrtcbin.c:
	  webrtcbin: ensure RTX entry for all formats
	  Properly implement RFC 4588 by ensuring each media format
	  has its own RTX payload type with unique 'apt' parameter,
	  rather than only mapping the first format.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8663>

2025-03-30 13:10:42 +0300  Sebastian Dröge <sebastian@centricular.com>

	* sys/va/gstvacaps.c:
	  va: Skip codecs that report maximum width or height lower than minimum
	  This happens on F42 with the JPEG decoders for some reason and trying to
	  actually use them with any resolution simply gives a "resolution not supported"
	  error.
	  A minimum of 64 is correctly reported though and trying to create caps with an
	  int range of [64, 0] gives critical warnings.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8736>

2025-03-14 22:03:53 -0400  Doug Nazar <nazard@nazar.ca>

	* sys/bluez/gsta2dpsink.c:
	  a2dpsink: Free various props during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 22:01:44 -0400  Doug Nazar <nazard@nazar.ca>

	* sys/aja/gstajasink.cpp:
	* sys/aja/gstajasrc.cpp:
	  aja: Free various props during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 22:01:05 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/librfb/gstrfbsrc.c:
	* gst/librfb/rfbdecoder.c:
	  rfbsrc: Free various props before being set & during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 21:59:13 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/frei0r/gstfrei0r.c:
	  frei0r: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 21:58:14 -0400  Doug Nazar <nazard@nazar.ca>

	* gst/faceoverlay/gstfaceoverlay.c:
	  faceoverlay: Free various props during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 19:38:54 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/wayland/gstwaylandsink.c:
	  waylandsink: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 19:38:03 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/qroverlay/gstdebugqroverlay.c:
	* ext/qroverlay/gstqroverlay.c:
	  qroverlay: Free various props before set & during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 19:37:39 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/openal/gstopenalsrc.c:
	  openalsrc: Free various props before being set
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 19:35:49 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/lcevcencoder/gstlcevcencoder.c:
	  lcevcencoder: Free various props before during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 19:25:48 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/dash/gstmpdadaptationsetnode.c:
	* ext/dash/gstmpdperiodnode.c:
	* ext/dash/gstmpdrepresentationbasenode.c:
	* ext/dash/gstmpdrepresentationnode.c:
	* ext/dash/gstmpdsegmenttemplatenode.c:
	* ext/dash/gstmpdsegmenturlnode.c:
	  dash: Free various props before set & during cleanup
	  In addition several members were being freed via xmlFree() even though
	  being created via g_value_dup_string(). Switch to g_free().
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 19:22:20 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/curl/gstcurlhttpsrc.c:
	  curlhttpsrc: Free various props before set & during cleanup
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-14 19:14:43 -0400  Doug Nazar <nazard@nazar.ca>

	* ext/gtk/gstgtkwaylandsink.c:
	* gst-libs/gst/mse/gstmediasourcetrack.c:
	* gst-libs/gst/va/gstvadisplay_drm.c:
	* sys/directshow/dshowdeviceprovider.cpp:
	* sys/directsound/gstdirectsounddevice.c:
	* sys/mediafoundation/gstmfdevice.cpp:
	* sys/uvch264/gstuvch264deviceprovider.c:
	* sys/wasapi/gstwasapidevice.c:
	* sys/wasapi2/gstwasapi2device.c:
	* sys/winks/ksdeviceprovider.c:
	  all: Annotate *_set_property() contructor only props without free
	  Properties that are marked constructor only aren't required to be freed
	  before g_value_dup_string() as they can only be called once during construction.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8648>

2025-03-26 15:32:05 +0200  Sebastian Dröge <sebastian@centricular.com>

	* ext/dash/gstdashsink.c:
	  dashsink: Make sure to use a non-NULL pad name when requesting a pad from splitmuxsink
	  If the caller passed in "audio_%u" instead of a concrete pad name into
	  gst_element_request_pad_simple() then the pad name will be NULL. In that case
	  use the pad template name for requesting the pad from splitmuxsink.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8697>

2025-03-23 00:19:50 +0100  Jan Tojnar <jtojnar@gmail.com>

	* gst-libs/gst/analytics/meson.build:
	  gst-analytics: Add gst-video to Requires in pkg-config
	  `gst/analytics/analytics.h` includes `gst/analytics/gstanalyticssegmentationmtd.h`,
	  which in turn `gst/video/video-info.h` but `gst-video-1.0` was only listed
	  in `Requires.private` field of `gst-analytics-1.0.pc`.
	  This would cause projects linking against `gst-analytics-1.0.pc` to fail to find
	  the headers when using alternative interpretation of pkg-config specification
	  that only considers private dependencies for include path during static builds,
	  such as the case e.g. on Nix.
	  https://gitlab.freedesktop.org/pkg-config/pkg-config/-/issues/28
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8661>

2025-02-18 14:12:49 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* docs/plugins/gst_plugins_cache.json:
	  mse: Updated documentation cache
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:38 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmsesrc-private.h:
	* gst-libs/gst/mse/gstmsesrc.c:
	  gstmsesrc: Added locking, improved seek implementation
	  The position is no longer duplicated across each pad and pad's segment. The
	  position is now only updated if it changes in the direction of playback so that
	  quickly repeated forward seeks do not cause the stream to seek from 0.
	  Reverse playback is expressly disallowed and an unnecessary extra flush of track
	  when seeking was removed.
	  A background task was added to periodically check on the current position and
	  the media source's buffering levels to keep the ready state up-to-date. The
	  source buffer no longer needs to trigger this update, it will happen whenever
	  the element state is READY or higher.
	  Finally, added proper error reporting when failing to push a buffer and improved
	  debug logging.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:38 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstappendpipeline.c:
	  gstappendpipeline: Added name to background task
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebufferlist.c:
	  gstsourcebufferlist: Added locking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Added locking, re-worked track feed task
	  Since the sample map/track buffer now iterates samples in batches corresponding
	  to each coded frame group, the logic to feed the tracks is simpler. For media
	  without delta frames, it's a special case where the coded frame groups are all
	  size 1.
	  Now, all it does is skip data until the keyframe group containing the seek point
	  is found, then feed the track queue with the current sample and all future
	  samples until EOS or cancellation.
	  Resync of the iterator when the underlying track is modified is not necessary
	  because the outer loop attempts to resume feeding track data from where it was
	  interrupted in case of modification.
	  Also, the track feed task struct now holds a weak ref to its parent source
	  buffer to allow the task to cancel itself in any situation where the source
	  buffer is destroyed before the task is shut down.
	  Media parsing activity in the append pipeline no longer triggers ready state
	  recalculation on the msesrc since the msesrc now has a background task that
	  updates the ready state periodically when it's active which is more efficient in
	  cases where there is a high volume of samples being processed by the media
	  parser.
	  Finally, updated to adapt to track buffer API changes. Some functions previously
	  passed in a lower bound for sample timestamps. Now the source buffer is
	  responsible for clipping samples within a desired range of time.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Added name to track feed task
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstsourcebuffer.c:
	  gstsourcebuffer: Moved misplaced documentation comment
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	* tests/check/libs/mse.c:
	  gstmediasourcetrackbuffer: Improved buffered ranges calculation
	  Now when the buffered list is requested, the tolerance for merging two ranges
	  when there's a small gap between them is MAX(0.1sec, max frame duration * 2).
	  Previously it was hardcoded to 0.01sec. The specification suggests that it
	  could be something like the max frame duration * 2.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer-private.h:
	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	  gstmediasourcetrackbuffer: Added method to wait until any new data
	  The source buffer currently has a thread for each track that feeds the track
	  with all data in the track buffer until EOS is reached.
	  Each pass over the track buffer currently waits for the EOS to appear when it's
	  done iterating the track buffer which is too restrictive.
	  When the source buffer reaches the end of the track buffer, it should wait for
	  any new data to be processed -- not just an EOS -- then check for cancellation
	  if the deadline expires without new data.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer-private.h:
	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	  gstmediasourcetrackbuffer: Removed start time filtering from sample iterator
	  This adapts to the changes to the sample map since gst_iterator_filter() is a
	  simpler way for callers to clip the returned samples to a desired time range.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrackbuffer-private.h:
	* gst-libs/gst/mse/gstmediasourcetrackbuffer.c:
	  gstmediasourcetrackbuffer: Removed unused code
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrack-private.h:
	* gst-libs/gst/mse/gstmediasourcetrack.c:
	* tests/check/libs/mse.c:
	  gstmediasourcetrack: Removed unused try_push() method
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcetrack.c:
	* tests/check/libs/mse.c:
	  gstmediasourcetrack: Ref the sample inside push() method
	  This simplifies cleanup for the caller since the push method already cleans up
	  the sample when it is consumed by playback or if it fails to be added to the
	  queue.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasourcesamplemap-private.h:
	* gst-libs/gst/mse/gstmediasourcesamplemap.c:
	* tests/check/libs/mse.c:
	  gstmediasourcesamplemap: Re-worked sample iteration and removal
	  Both operations now work on coded frame groups (GOPs). This simplifies queueing
	  of video data. There is rarely any point of dealing with individual video frames
	  when iterating in DTS order, it's most meaningful to decode or delete whole
	  coded frame groups at a time, so the sample map will now do that when iterating
	  by DTS. When iterating in PTS order, the existing behavior is preserved since
	  that is used for informational purposes, not media processing.
	  A new private boxed type for coded frame groups was added to provide each data
	  item to the source buffer. Another possible solution would be creation of a new
	  GstSample representing the whole group by merging all the samples in a group
	  into a single sample containing a GstBufferList.
	  Also, start time filtering was removed from the API since gst_iterator_filter()
	  can be used by callers to achieve the same result.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasource.c:
	  gstmediasource: Added locking
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmediasource.c:
	  gstmediasource: Added caller-allocates annotation to get_live_seekable_range()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-02-18 13:08:37 -0700  Jordan Yelloz <jordan.yelloz@collabora.com>

	* gst-libs/gst/mse/gstmselogging-private.h:
	* gst-libs/gst/mse/gstmselogging.c:
	  gstmselogging: Added helper function to get nicknames of enum values
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8512>

2025-03-25 03:04:52 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gstcodecccinserter.c:
	  codecccinserter: Fix event double free
	  Need to steal GstVideoCodecFrame.events before unref
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 03:02:57 +0900  Seungha Yang <seungha@centricular.com>

	* ext/closedcaption/gsth265reorder.c:
	  h265ccinserter: Fix broken SPS/PPS link
	  Apply the same h265decoder change to h265ccinserter
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 02:09:49 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecs/gsth265decoder.c:
	  h265decoder: Fix broken SPS/PPS link
	  Because of 2 pass nalu handling in decoder, link between
	  slice header and SPS/PPS can be broken at the second pass
	  if SPS/PPS got updated after slice header in the same AU
	  Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4323
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 02:41:29 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser-private.h:
	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Add private method to update slice header
	  Adding a method to allow linking already parsed slice header
	  with parser's own sps/pps
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-25 01:58:42 +0900  Seungha Yang <seungha@centricular.com>

	* gst-libs/gst/codecparsers/gsth265parser.c:
	  h265parser: Allow updating SPS/PPS without parent parameter set
	  h265parser defers linking parameter sets until slice header is parsed.
	  Thus valid SPS/PPS parsed by h265parser can have no linked
	  parent parameter set. Apply this behavior to
	  gst_h265_parser_update_{sps,pps} too
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8673>

2025-03-21 11:41:11 +0900  Dongyun Seo <dongyun.seo@lge.com>

	* gst-libs/gst/vulkan/gstvkformat.c:
	  vkformat: fix build error
	  fix build error when VK_KHR_format_feature_flags2 is not defined.
	  Co-authored-by: Victor Jaquez vjaquez@igalia.com
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8655>

2025-03-07 16:05:20 -0500  Eric <ekc4yz@virginia.edu>

	* docs/plugins/gst_plugins_cache.json:
	* ext/sctp/gstsctpdec.c:
	* ext/sctp/gstsctpdec.h:
	* ext/sctp/gstsctpenc.c:
	* ext/sctp/sctpassociation.c:
	* ext/sctp/sctpassociation.h:
	* ext/webrtc/webrtcsctptransport.c:
	  webrtc: fix hangup when duplicate sctp association IDs chosen
	  Fixes an issue where the webrtcbin would hangup when finalizing due
	  to the sctpenc hanging up when finalizing. This occurred when the
	  webrtcbin chose to use a sctp association ID already in use.
	  The sctpenc would fail to reach the paused state, but startup a task
	  anyways that was never stopped.
	  This commit modifies the behavior to not choose sctp association IDs
	  randomly, and instead only choose one that is free. It also prevents the
	  sctpenc from starting up that task if it fails to reach the paused state.
	  Fixes: #4188
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8607>

2025-03-13 16:27:44 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* ext/vulkan/vkh264dec.c:
	* ext/vulkan/vkh265dec.c:
	* ext/vulkan/vksink.c:
	  vulkan: fix memory leak at dynamic registering
	  Also it cleans up a bit the code.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8639>

2025-01-22 15:02:03 +0100  Marc Leeman <marc.leeman@gmail.com>

	* gst-libs/gst/cuda/meson.build:
	  meson.build: test for and link against libatomic if it exists
	  It's needed on some platforms for some subset (or all) atomic operations and
	  checking for the cases when it's actually needed is quite complex.
	  Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4300
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8637>

2025-03-13 17:22:12 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	  vtenc: Reset restart flag when creating session in set_format()
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8597>

2025-03-06 17:23:11 +0100  Piotr Brzeziński <piotr@centricular.com>

	* sys/applemedia/vtenc.c:
	* sys/applemedia/vtenc.h:
	  vtenc: Avoid deadlocking when changing properties on the fly
	  VT supports changing properties on the fly, and old code attempted to
	  support that. Perhaps 10 years ago that worked, but these days
	  VTSessionSetProperty will always wait for the output callback to finish
	  before proceeding. This means that it's very prone to deadlocking, as
	  property setters will take the object lock, the callback thread will
	  take the stream lock, and the main (streaming) thread attempts to take
	  both, resulting in a deadlock.
	  New version uses something similar to other encoders (e.g. x264enc) -
	  changing a property when a session is already created will just flag it
	  to be reconfigured upon the next encode call. This is done in similar
	  fashion to how restarting the session upon an error works.
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8597>

2025-03-12 19:20:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>

	* sys/va/gstvaav1enc.c:
	* sys/va/gstvacaps.c:
	* sys/va/gstvacompositor.c:
	* sys/va/gstvadeinterlace.c:
	* sys/va/gstvaencoder.c:
	* sys/va/gstvafilter.c:
	* sys/va/gstvah264enc.c:
	* sys/va/gstvah265enc.c:
	* sys/va/gstvajpegenc.c:
	* sys/va/gstvavp9enc.c:
	* sys/va/gstvavpp.c:
	  va: remove unused headers
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8626>

2025-03-08 12:07:11 +0000  Philippe Normand <philn@igalia.com>

	* gst/codecalpha/gstalphacombine.c:
	  alphacombine: De-couple flush-start/stop events handling
	  There is no guarantee that any FLUSH_STOP event is preceded by a FLUSH_START.
	  The element now stops flushing once it has received a FLUSH_STOP on all its sink
	  pads.
	  Fixes #4174
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8604>

2025-03-10 13:14:07 -0300  Thibault Saunier <tsaunier@igalia.com>

	* ext/svthevcenc/gstsvthevcenc.c:
	* gst/librfb/gstrfbsrc.c:
	* gst/y4m/gsty4mdec.c:
	* sys/nvcodec/gstcudamemorycopy.c:
	* sys/va/gstvapluginutils.c:
	  video: Give better names to buffer pools
	  Making debugging simpler
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8617>

2025-03-12 13:59:45 +0100  Tim-Philipp Müller <tim@centricular.com>

	* README.md:
	* RELEASE:
	* meson.build:
	  Back to development in main branch after 1.26.0
	  Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8621>

=== release 1.26.0 ===