Newer
Older
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
DISCONT flag properly.
2018-09-27 22:10:14 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Don't add latency when not needed
We no longer add latency when doing AU->AU, AU->NAL and NAL->NAL
parsing.
2018-09-28 16:49:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/videoparsers/gsth264parse.c:
* gst/videoparsers/gsth264parse.h:
h264parse: Propagate MARKER flag
2018-09-25 16:10:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Don't wait for next NAL if input is aligned
Waiting for the next NAL increases the latency. If alignment=nal/au
has been negotiated, assumes that the buffer contains a complete
NAL and don't expect a second start-code. This way, nal -> nal,
au -> au and au -> nal no longer introduce latency.
As a side effect, the collect_pad() function was not able to poke at the
following NAL. This call is now moved before processing the NAL, so
it's looking at the current NAL before it's ingested into the parser
state in order to dermin if the end of an AU has been reached. The AUD
injection state as been adapted to support this.
This change will break pipelines if alignment=nal is used without respecting the
alignment. Effectively, the parser will no longer fix the broken aligment
which will result in parser error and the termination of the pipeline. Such
issue existed in tsdemux element and might exist in any forks of that code.
Related to https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1193
2018-09-25 16:16:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Set PTS/DTS and DISCONT on crafted NAL
When we inject a NAL in the bitstream before another one, make
sure to pass both DTS and PTS. Also make sure to transfer the
DISCONT flag properly.
2018-09-25 16:11:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Remove no-op assignment
upstream was set to *out_ts, setting *out_ts to upstream here will
have no effect.
2020-04-13 18:18:45 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/mpegtsmux/gstbasetsmux.c:
mpegtsmux: Chain up pad dispose function to the one of the parent class
Otherwise we will leak various memory.
2020-04-13 18:04:19 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/mpegtsmux/gstbasetsmux.c:
mpegtsmux: Properly release requests pads by chaining up to aggregators function
2020-04-10 19:54:31 +0300 Vivia Nikolaidou <vivia@ahiru.eu>
* gst/mpegtsmux/gstbasetsmux.c:
* gst/mpegtsmux/tsmux/tsmux.c:
* gst/mpegtsmux/tsmux/tsmux.h:
* gst/mpegtsmux/tsmux/tsmuxstream.c:
* gst/mpegtsmux/tsmux/tsmuxstream.h:
* tests/check/elements/mpegtsmux.c:
tsmux: Ability for streams to disappear and reappear
Until now, any streams in tsmux had to be present when the element
started its first buffer. Now they can appear at any point during the
stream, or even disappear and reappear later using the same PID.
2020-03-18 17:58:52 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
* ext/srt/gstsrtobject.c:
* ext/srt/gstsrtobject.h:
srt: Accumulate total bytes sent/received over all connections/callers
So we don't lose them. Split gst_srt_object_open_internal for internal
reconnections that don't reset the accumulated bytes.
2020-03-23 16:38:58 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
* ext/srt/gstsrtobject.c:
srt: Fix type of bytes-received-lost
The field is a uint64_t.
2020-03-18 18:06:59 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
* ext/srt/gstsrtobject.c:
* ext/srt/gstsrtobject.h:
* ext/srt/gstsrtsink.c:
* ext/srt/gstsrtsrc.c:
srt: Remove use of closures for signal emission
It seems overly complicated.
2020-03-18 17:55:38 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
* ext/srt/gstsrtobject.c:
* ext/srt/gstsrtobject.h:
* ext/srt/gstsrtsink.c:
* ext/srt/gstsrtsrc.c:
srt: Clean up locking
Use GST_OBJECT_LOCK (srtobject->element) to protect only the fields
involved in property access.
Introduce a new mutex srtobject->sock_lock to go with
srtobject->sock_cond and protect the list of callers from concurrent
access.
2020-03-18 17:54:29 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
* ext/srt/gstsrtobject.c:
* ext/srt/gstsrtobject.h:
* ext/srt/gstsrtsink.c:
* ext/srt/gstsrtsink.h:
* ext/srt/gstsrtsrc.c:
* ext/srt/gstsrtsrc.h:
srt: Remove trailing whitespace
2018-10-10 18:36:57 +0000 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/mpegtsdemux/tsdemux.c:
mpegtsdemux: Don't pretend doing NAL alignment
Per specification in 2.14.2 "For PES packetization, no specific data
alignment constraints apply". So we should not advertise NAL
alignment.
This bug was introduced at the same moment the alignment field was introduced
10 years ago. The plan was that alignment=none (or no alignment field) was to
be used for mpegtsdemux, but no one noticed the error. The reason is that at
the same moment, everything dealing with H264 started defaulting to AU
alignment.
https://bugzilla.gnome.org/show_bug.cgi?id=606662#c22
This patch will have a side effect that a parser is now needed after the
tsdemux element. The following pipeline will not negotiate anymore as the
mpegtsmux element requires alignment={nal,au}.
... ! tsdemux ! mpegtsmux ! ...
As a side effect, anyone that forked from tsdemux should updated their code to
fix this bug.
2020-04-13 20:36:50 +0900 Seungha Yang <seungha@centricular.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Remove useless comparison
sei_pic_struct is unsigned and GST_H264_SEI_PIC_STRUCT_FRAME is zero.
CID: 1461467
2020-04-13 20:31:14 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth265parser.c:
h265parser: Fix some coverity issues
- Remove useless comparison
- Fix invalid memory access
CID: 1461477, 1461476, 1461475, 1461474, 1461279
2020-04-03 15:45:02 +0100 Philippe Normand <philn@igalia.com>
* ext/wpe/WPEThreadedView.cpp:
* ext/wpe/WPEThreadedView.h:
wpe: Add support for SHM without requiring EGLDisplay
The previous version of the SHM export support still required a valid
EGLDisplay. The upcoming WPEBackend-FDO 1.8.x aims to remove this requirement,
hence allowing wpesrc to be used without GPU.
2020-04-13 15:21:48 +0900 J. Kim <jeongseok.kim@sk.com>
* ext/srt/gstsrtobject.c:
srtobject: fix mutex lock target
GstSRTObject is a structure that has an actual GstElement
which is extended to srt{src,sink}.
2020-04-10 21:03:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
* sys/v4l2codecs/gstv4l2codecdevice.c:
* sys/v4l2codecs/gstv4l2codecdevice.h:
v4l2codecs: fix v4l2codecdevice get type
Currently the GType of v4l2codecdevice is hardcoded to zero, but it
rather should be delivered by the GType system.
2020-04-10 18:22:21 +0300 Jordan Petridis <jpetridis@gnome.org>
* sys/msdk/gstmsdkdec.c:
gstmsdkdec: fix logical operation that misses parenthesis
in C, & is weaker than the ! operator and clang is giving the following
error about it.
```
../subprojects/gst-plugins-bad/sys/msdk/gstmsdkdec.c:731:7: error: logical not is only applied to the left hand side of this bitwise operator [-Werror,-Wlogical-not-parentheses]
if (!gst_msdk_context_get_job_type (thiz->context) & GST_MSDK_JOB_DECODER) {
^ ~
../subprojects/gst-plugins-bad/sys/msdk/gstmsdkdec.c:731:7: note: add parentheses after the '!' to evaluate the bitwise operator first
if (!gst_msdk_context_get_job_type (thiz->context) & GST_MSDK_JOB_DECODER) {
^
( )
../subprojects/gst-plugins-bad/sys/msdk/gstmsdkdec.c:731:7: note: add parentheses around left hand side expression to silence this warning
if (!gst_msdk_context_get_job_type (thiz->context) & GST_MSDK_JOB_DECODER) {
^
( )
1 error generated.
```
2020-03-23 14:40:52 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecs/gsth264decoder.c:
* gst-libs/gst/codecs/gsth265decoder.c:
* gst-libs/gst/codecs/gstvp9decoder.c:
codecs: Add minimal state validation
... to prevent requesting decoding before the preparation.
For instance, baseclass should not request decoding a picture if there
is no parsed valid headers, since subclass is most likely
not ready to decoding it.
2020-03-30 15:42:35 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth265parser.c:
* gst-libs/gst/codecparsers/gsth265parser.h:
h265parser: Add APIs to allow update VPS/SPS/PPS
gst_h265_parser_parse_{vps,sps,pps} APIs were used to parse VPS/SPS/PPS and
also in order to update parser's internal state at once. Meanwhile
gst_h265_parse_{vps,sps,pps} APIs are to parse VPS/SPS/PPS without state update.
This commit introduces new APIs so that only accepted VPS/SPS/PPS by user
can be updated to be used by parser.
2020-03-30 15:27:40 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth264parser.c:
* gst-libs/gst/codecparsers/gsth264parser.h:
h264parser: Add APIs to allow update SPS/PPS
gst_h264_parser_parse_{sps,pps} APIs were used to parse SPS/PPS and
also in order to update parser's internal state at once. Meanwhile
gst_h264_parse_{sps,pps} APIs are to parse SPS/PPS without state update.
This commit introduces new APIs so that only accepted SPS/PPS by user
can be updated to be used by parser.
2020-04-09 23:12:25 +0900 Seungha Yang <seungha@centricular.com>
* sys/kms/meson.build:
meson: kmssink: Allow fallback only on linux
Otherwise fallback will waste meson configure time on non-linux
2020-04-08 01:22:07 +0200 Zeid Bekli <zeidb@axis.com>
* ext/srtp/gstsrtp.c:
srtp: Added support for BYE packet
SRTCP can't get SSRC from BYE packet, this will make srtpdec element
to drop the package. Adding support to get the SSRC from BYE packets.
2020-04-09 16:12:58 +0900 Seungha Yang <seungha@centricular.com>
* sys/nvcodec/gstcuvidloader.c:
* sys/nvcodec/gstcuvidloader.h:
* sys/nvcodec/gstnvdec.c:
* sys/nvcodec/gstnvenc.c:
* sys/nvcodec/gstnvenc.h:
* sys/nvcodec/plugin.c:
nvdec: Don't hardcode DPB size
Too many decode surface would waste GPU memory. Also it seems to be
introducing additional latency depending on stream. Since nvcodec
sdk version 9.0, CUVID parser API has been providing the minimum
required number of surface. By using it, we can save GPU memory
and reduce possible latency.
2020-04-08 14:21:30 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codecdevice.c:
v4l2codecs: Fix FD leak during device enumeration
This was revealed by Coverity.
CID 1461248
2020-04-07 19:28:27 +0200 Stéphane Cerveau <scerveau@collabora.com>
* ext/dash/gstmpdclient.c:
dash: fix VARARGS coverity error
va_end was not called in every code path due to
g_return_val_if_fail.
API usage errors (VARARGS)
va_end was not called for "myargs".
CID: 1461294
2020-04-08 12:10:21 -0400 Xavier Claessens <xavier.claessens@collabora.com>
* meson.build:
* meson_options.txt:
Meson: Change extra-checks to feature option and make it yielding
2020-04-08 14:00:48 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Fix content light level value changes
Same as for H265, was found by Coverity.
2020-04-07 17:04:30 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst/videoparsers/gsth265parse.c:
h265parse: Fix content light level value changes
The comparision was not testing anything meaninful. This fixes the comparision
so we now update the caps whenever the value differ. This was detected by
coverity.
CID 1461291
2020-04-08 18:39:06 +0200 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
* gst/rtmp2/gstrtmp2sink.c:
* gst/rtmp2/gstrtmp2src.c:
rtmp2: Avoid a deadlock when getting stats
We need to do this without holding the lock as the `g_async_queue_pop`
waits on the loop thread to deliver the stats. The loop thread might
attempt to take the lock as well, leading to a deadlock.
Taking a reference to the connection should be enough to keep this
safe.
2020-04-08 15:37:03 +0900 Seungha Yang <seungha@centricular.com>
* gst/videoparsers/gsth264parse.c:
* gst/videoparsers/gsth264parse.h:
h264parse: Add support for inband timecode update
Add new property "update-timecode" to allow updating timecode
in picture timing SEI depending on timecode meta. Since the picture
timing SEI message requires proper VUI setting but we don't support
re-writing SPS, this might not work for some streams
2020-04-08 17:07:36 +0900 Seungha Yang <seungha@centricular.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Don't unconditionally append timecode meta
If upstream buffer has its own timecode metatdata, don't append
new timecode meta into the buffer.
2020-04-08 16:24:06 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth264parser.c:
* gst-libs/gst/codecparsers/gsth264parser.h:
* gst/videoparsers/gsth264parse.c:
h264parser: Parse all SEI payload type even if it's not handled by parser
... so that user can handle it from outside of parser API
2020-04-07 20:26:23 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth264parser.c:
* tests/check/libs/h264parser.c:
h264parser: Add support for creating picture timing SEI
This new method can make it possible to inject timecode meta into
h264 bitstream
2020-04-07 22:30:55 +0900 Seungha Yang <seungha@centricular.com>
* tests/check/libs/h264parser.c:
tests: h264parser: Fix picture timing SEI
The payloadSize don't need to include rbsp_trailing_bits()
2020-04-07 19:32:29 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth264parser.c:
* gst-libs/gst/codecparsers/gsth264parser.h:
h264parser: Make GstH264PicTiming self-containing all the syntax information
... and store all parsed values.
We are storing pic_struct_present_flag although it's not part of
this SEI message but GstH264PicTiming includes it to clarify
following syntax values.
In addition to that, by adding CpbDpbDelaysPresentFlag, we don't need to
refer to VUI anymore.
2020-04-07 21:17:30 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth264parser.c:
h264parser: Fix some misleading debug messages
2020-04-07 09:17:15 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth264parser.h:
h264parser: Fix mismatched argument of declaration and definition
2020-04-06 10:25:37 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
* gst/sdp/gstsdpdemux.c:
* gst/sdp/gstsdpdemux.h:
sdpdemux: don't send EOS for unknown SSRC
The rtpbin sends signals for all SSRCs. Don't send an EOS when the SSRC
does not match the stream SSRC.
This avoids problems when an SSRC from another receiver times out.
2020-04-08 08:47:37 -0400 Thibault Saunier <tsaunier@igalia.com>
* docs/libs/codecs/index.md:
* docs/libs/codecs/sitemap.txt:
* docs/meson.build:
* gst-libs/gst/codecs/gsth264decoder.c:
* gst-libs/gst/codecs/gsth265decoder.c:
* gst-libs/gst/codecs/gstvp9decoder.c:
* gst-libs/gst/codecs/meson.build:
codecs: Add basic documentation stubs
2020-04-07 17:10:08 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2decoder.c:
v4l2decoder: Fix file descriptor leak
A copy paste error was leading to file descriptor leak. This was detected by
Coverity.
CID 1461285
2020-04-06 16:40:38 +0100 Philippe Normand <philn@igalia.com>
* gst/debugutils/gstfakevideosink.c:
* gst/debugutils/gstfakevideosink.h:
fakevideosink: Allow allocation meta flags fine-tuning
In some scenarios the fakevideosink shouldn't advertize the overlay-composition
meta for instance, so that overlay elements perform subtitles blending
themselves.
2020-04-06 10:19:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
* gst/mpegtsdemux/mpegtspacketizer.c:
mpegtspacketizer: be more tolerant when parsing the adaptation field
According to the specification, the adaptation field length must be 183 if
there is no payload data and < 183 if the packet contains an adaptation
field and payload data.
Unfortunately some payloaders always set the flag for payload data, even if
the adaptation field length is 183.
Don't return with an error in this case. Clear the payload data flag
instead and parse the adaptation field as usual. This avoids visual
artefacts for such streams.
2020-04-06 15:06:01 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst-libs/gst/codecs/gsth264decoder.c:
* gst-libs/gst/codecs/gsth264picture.h:
codecs: h264: Fix DPB size calculation
As per specification in A.3.1 h) and A.3.2 f), the maximum size of the DPB is
16. Fix the maximum in the fine and fix the formula to use MIN instead of MAX
so that we no longer always use the maximum for the profile/level.
2020-04-01 12:33:38 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkvp9dec.c:
msdkvp9dec: add support for VP9 12bit
The output formats are P012_LE for 12bit 420 and Y412_LE for 12bit 444.
2020-04-03 18:50:16 -0400 worldofpeace <worldofpeace@protonmail.ch>
* ext/neon/meson.build:
meson: build with neon 0.31
No API/ABI changes https://github.com/notroj/neon/blob/0.31.0/NEWS#L3
2020-04-03 17:07:47 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* ext/vulkan/shaders/meson.build:
* meson.build:
* sys/d3d11/meson.build:
meson: Don't use get_option('buildtype')
We should directly check the values of the `debug` and `optimization`
options instead.
`get_option('buildtype')` will return `'custom'` for most combinations
of `-Doptimization` and `-Ddebug`, but those two will always be set
correctly if only `-Dbuildtype` is set. So we should look at those
options directly.
For the two-way mapping between `buildtype` and `optimization`
+ `debug`, see this table:
https://mesonbuild.com/Builtin-options.html#build-type-options
2020-03-23 12:56:46 +0100 Stéphane Cerveau <scerveau@collabora.com>
* sys/kms/meson.build:
kms: add fallback on libdrm project if available.
2020-03-12 13:28:59 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkh265dec.c:
msdkh265dec: add support for main-444-12, main-444-12-intra profiles
The video format is Y412_LE
2020-03-12 13:21:02 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkallocator_libva.c:
msdk: map Y412_LE to VA_FOURCC_Y416
In media driver, VA_FOURCC_Y416 is used for packed 12 bits 4:4:4:4 YUV
format, the corresponding RT format is VA_RT_FORMAT_YUV442_12
2020-03-12 13:12:33 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkallocator_libva.c:
* sys/msdk/msdk_libva.c:
msdk: map MFX_FOURCC_Y416 to VA_FOURCC_Y416
Y416 is used for packed 12 bits 4:4:4:4 YUV format in media driver, the
RT format is VA_RT_FORMAT_YUV444_12
2020-03-12 12:58:40 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdksystemmemory.c:
* sys/msdk/gstmsdkvideomemory.c:
* sys/msdk/msdk.c:
msdk: map Y412_LE to MFX_FOURCC_Y416
MFX_FOURCC_Y416 is used for packed 12 bits 4:4:4:4 YUV format in
MediaSDK
2020-03-11 14:55:33 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkh265dec.c:
msdkh265dec: add support for main-422-12, main-422-12-intra profiles
The video format is Y212_LE
2020-03-11 14:35:55 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkallocator_libva.c:
msdk: map Y212_LE to VA_FOURCC_Y216
In media driver, VA_FOURCC_Y216 is used for packed 12 bits 4:2:2 YUV
format, the corresponding RT format is VA_RT_FORMAT_YUV422_12
2020-03-11 14:09:11 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkallocator_libva.c:
* sys/msdk/msdk_libva.c:
msdk: map MFX_FOURCC_Y216 to VA_FOURCC_Y216
In media driver, Y216 is used for packed 12 bits 4:2:2 format YUV
format, so the RT format is VA_RT_FORMAT_YUV422_12.
2020-03-11 13:54:42 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdksystemmemory.c:
* sys/msdk/msdk.c:
msdk: map Y212_LE to MFX_FOURCC_Y216
MFX_FOURCC_Y216 is used for packed 12 bits 422 YUV format in MediaSDK
2020-04-03 00:42:23 +0900 Seungha Yang <seungha@centricular.com>
* sys/msdk/gstmsdkh265enc.c:
msdkh265enc: Fix for wrong parser free function
2020-03-18 12:30:51 +1100 Jan Schmidt <jan@centricular.com>
* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
adaptivedemux: Handle instant rate change requests directly
Downstream demuxers will first send seek events upstream to us.
Do the right thing with instant rate change requests by handling them
immediately.
2020-03-17 19:31:22 +1100 Jan Schmidt <jan@centricular.com>
* gst-libs/gst/adaptivedemux/gstadaptivedemux.c:
adaptivedemux: Don't ignore gst_segment_do_seek() return result
gst_segment_do_seek() can fail, so don't ignore the return result
2018-11-30 05:18:42 +1100 Jan Schmidt <jan@centricular.com>
* gst/mpegtsdemux/mpegtsbase.c:
tsdemux: Send instant-rate-change event if requested in the SEEK event
Convert instant-rate-change seek events into a downstream
instant-rate-change event and skip any further local seek handling.
2020-03-31 20:51:15 +0900 Seungha Yang <seungha@centricular.com>
* sys/msdk/gstmsdkh264enc.c:
* sys/msdk/gstmsdkh264enc.h:
msdkh264enc: Configure parser and SEI array only if it's required
2020-03-31 15:25:47 +0900 Seungha Yang <seungha@centricular.com>
* sys/msdk/gstmsdkh265enc.c:
* sys/msdk/gstmsdkh265enc.h:
msdkh265enc: Add support for CEA708 closed caption insertion
Functionally identical to that of msdkh264enc
2020-03-19 18:25:18 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth265parser.c:
* gst-libs/gst/codecparsers/gsth265parser.h:
* tests/check/libs/h265parser.c:
h265parser: Add a helper method to create SEI nal unit
Add an API to create raw SEI nal unit. This would be useful in case
an user want to create SEI nal data and inject the SEI nal data
into bitstream.
2020-04-01 19:43:51 +0200 Miguel Paris <mparisdiaz@gmail.com>
* ext/srtp/gstsrtpdec.c:
srtpdec: reduce log level for replay cases
These are normal cases, so DEBUG level is enough.
2017-04-11 12:41:11 +0200 Miguel París Díaz <mparisdiaz@gmail.com>
* ext/srtp/gstsrtp.h:
* ext/srtp/gstsrtpdec.c:
srtpdec: do not warning old replay errors
Reordered packets producing decrypting errors are very normal,
so we should filter which errors are warning and which not.
2018-05-29 15:00:43 +0200 Miguel Paris <mparisdiaz@gmail.com>
* ext/srtp/gstsrtpdec.c:
* ext/srtp/gstsrtpdec.h:
srtpdec: fix reseting RTP sequence number on ROC changes
Each srtp_stream_t is tied to an specific SSRC, so a
roc_changed flag should be kept per each SSRC in order to
properly reset RTP sequence number on ROC changes.
2020-03-13 16:50:16 +0900 Seungha Yang <seungha@centricular.com>
* sys/d3d11/gstd3d11format.c:
d3d11: Update for video-hdr struct change
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-03-13 16:45:12 +0900 Seungha Yang <seungha@centricular.com>
* sys/nvcodec/gstnvh265enc.c:
nvh265enc: Update for video-hdr struct change
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-03-13 16:34:01 +0900 Seungha Yang <seungha@centricular.com>
* ext/x265/gstx265enc.c:
x265enc: Update for video-hdr struct change
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-03-13 16:17:07 +0900 Seungha Yang <seungha@centricular.com>
* gst/videoparsers/gsth264parse.c:
* gst/videoparsers/gsth265parse.c:
* tests/check/elements/h264parse.c:
* tests/check/elements/h265parse.c:
h264parse,h265parse: Update for video-hdr struct change
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2018-07-28 14:54:42 +0200 Zeeshan Ali <zeenix@collabora.co.uk>
* gst/videoparsers/gsth265parse.c:
h265parse: Set duration on buffers base on framerate
2018-06-14 16:20:54 +0200 Zeeshan Ali <zeenix@collabora.co.uk>
* gst/videoparsers/gsth265parse.c:
h265parse: Derive src fps from vui_time_scale & vui_num_units_in_tick
2018-06-13 16:33:21 +0200 Zeeshan Ali <zeenix@collabora.co.uk>
* gst/videoparsers/gsth265parse.c:
h265parse: Handle interlaced video
For interlaced video:
* set the interlace mode in the src caps
* double the height from SPS in the caps.
* set field latency, instead of frame latency.
Fix #778
2020-03-27 13:05:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst-libs/gst/codecs/gsth264picture.c:
codecs: h264dpb: Don't leak pic_list GArray
The contents was cleared, but the array was never released.
2020-03-26 15:57:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/meson.build:
v4l2codecs: Only build this plugin on Linux
This is not useful on any other OSs, it will also avoid potential build
failure as this code uses Linux specific calls.
2020-03-26 15:38:47 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/plugin.c:
v4l2codecs: Add plugin dependency
This ensure that the registry cache get updated when a meaningful change is
made in /dev for files named media*.
2020-03-20 12:37:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
* sys/v4l2codecs/gstv4l2codecpool.c:
* sys/v4l2codecs/gstv4l2decoder.c:
v4l2codecs: Wait for buffers to come back
This code add required mechanism to try and allocate (not implemented yet)
otherwise wait for more buffers. This also comes with mechanism to terminate
the wait on flush or PAUSED_TO_READY transitions.
2020-03-20 14:14:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
v4l2codecs: Implement flushing sequence
This simply consit of cycling through STREAMOFF/STREAMON with stateless
decoders.
2020-03-20 12:35:03 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codecallocator.c:
* sys/v4l2codecs/gstv4l2codecallocator.h:
v4l2codecs: allocator: Add method to wait for more buffers
This add function to wait for buffers to get back into the pool along with a
set_flushing() method to allow unblocking this wait.
2020-03-18 17:03:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codecpool.c:
v4l2codecs: pool: Create new buffer when pool is empty
This simply create an empty GstBuffer when the pool is empty. This way it's up
to the allocator to grow or wait if we ran out of memory.
2020-03-18 17:00:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2slh264dec: Improve end_picture() robustness
Use a goto to ensure that for all cases we cleanup the current picture state.
And move the src buffer allocation higher, so we don't queue a bitstream
buffer if we don't have a picture buffer to decode into.
2020-03-18 16:51:11 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* gst-libs/gst/codecs/gsth264decoder.c:
codecs: h264: Do not ignore end_picture() return value
If decoding failed because end_picture() failed, set the picture to
nonexisting, this way output_picture() will be skipped. This avoids confusing
special cases in output_picture() implementation.
2020-02-17 18:08:48 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
* sys/v4l2codecs/gstv4l2format.c:
v4l2slh264dec: Add output format negotiation
This allow negotiating the output format through caps. Some drivers can
pipeline the decoder buffer through an image processor. This only support
colorspace conversion for now.
2020-03-13 16:51:27 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2format.c:
* sys/v4l2codecs/gstv4l2format.h:
v4l2format: Convert between V4L2 and GST video format
This will be needed in the output format negotiation.
2020-03-13 14:23:39 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2format.c:
v4l2codecs: Read driver provided stride
This implements driver stride support but only for single allocation buffers.
This code is imported from the original v4l2 plugin and adapted to the new
helper context.
2020-03-12 16:15:40 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2h264dec: Copy frames when GstVideoMeta is not supported
In some case, when downstream does not support GstVideoMeta, we need to
normalize the stride and offset of the buffer so that downstream can render
properly with a GstVideoMeta. This code is not called when GstVideoMeta is
supported downstream.
2020-03-11 17:45:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codecpool.c:
* sys/v4l2codecs/gstv4l2codecpool.h:
v4l2codec: Add initial GstVideoMeta support
In this patch we strictly set the GstVideoMeta width/height to the coded width
and height. Further patches will add stride support and frame copying when
downstream does not support GstVideoMeta.
2020-03-09 16:44:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2slh264dec: Prevent spurious renegotiation
Don't let downstream cause a renegotiation at random point in time. This would
lead to spurious renegotiation and the decoder state may not be recoverable.
2020-03-03 21:22:52 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2slh264dec: Hold on picture buffers
These buffers should not be reused for decoding until they are no longer
referenced.
2020-02-16 17:48:12 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
v4l2codecs: Fix bytesused value
Pass the actual amount of bytes we have copied into the bitstream buffer. Also
unmap the memory before queuing.
2020-02-16 14:53:08 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2codech264dec: Implement finish frame
This enables the request to be processed by the HW (STREAMON) and to be pushed
downstream for further processing.
2020-02-16 14:51:37 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
v4l2codecdecoder: Add support for dequeuing buffers
This includings polling of the request and streamon/streamoff.
2020-02-14 22:13:05 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2codech264dec: Implement queuing
We now pass the controls, associated to a request, queue the bitstream, qeueue
a picture buffer to decode into and finally queue the request. This now runs
until the buffer pool is exhausted. The next step will be to dequeue.
2020-02-14 22:03:17 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
v4l2decoder: Add helpers to queue buffer and requests
2020-02-14 21:57:34 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codecallocator.c:
* sys/v4l2codecs/gstv4l2codecallocator.h:
* sys/v4l2codecs/gstv4l2codecpool.c:
* sys/v4l2codecs/gstv4l2codecpool.h:
v4l2codec: Add getter for buffer index in allocator and pool
2020-02-13 17:46:29 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codecallocator.c:
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2h264codecdec: Copy bitstream parameter and data
In this patch we fill the control structure with the bitstream paramter and
copy the bitstream data into V4L2 memory. Slice paramters are only the subset
of what Hantro needs, without any support for interlaced content.
2020-02-12 23:50:42 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
v4l2slh264dec: Use the newly introduced allocator / pool
We now allocate and free the memory needed for streaming.
2020-02-12 23:45:14 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codecallocator.c:
* sys/v4l2codecs/gstv4l2codecallocator.h:
* sys/v4l2codecs/gstv4l2codecpool.c:
* sys/v4l2codecs/gstv4l2codecpool.h:
* sys/v4l2codecs/meson.build:
v4l2codec: Add allocator and pool implementation
This is a pooling allocator and the buffer pool does nothing other then
reusing the GstBuffer structure. Note that the pool is an internal pool, so
the start/stop/set_config virtual functions are not implemented.
2020-02-12 23:39:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
v4l2codec: decoder: Add allocation helper
2020-02-10 18:05:39 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
v4l2codecs: Implement H264 format negotiation
2020-02-10 18:02:37 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2format.c:
* sys/v4l2codecs/gstv4l2format.h:
* sys/v4l2codecs/meson.build:
v4l2codecs: Add initial formats helpers
2020-02-09 11:31:11 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2codech264dec.c:
* sys/v4l2codecs/gstv4l2codech264dec.h:
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
* sys/v4l2codecs/meson.build:
* sys/v4l2codecs/plugin.c:
v4l2codecs: Add skeleton of H264 decoder
This introduces the skeleton of the H264 decoder. The plugin will list the
devices and register a subclass of the GstV4L2CodecH264Dec base class. The
subclass will pick the required specific information from the GstV4L2Device
stored in the subclass structure.
2020-02-05 21:42:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/gstv4l2decoder.c:
* sys/v4l2codecs/gstv4l2decoder.h:
* sys/v4l2codecs/meson.build:
v4l2codec: Add GstV4L2Deocder helper object
This is a GstObject which will be used to hold on media and video device file
descriptor and provide abstracted ioctl calls with these descriptor. At the
moment this helper contains just enough to enumerate the supported format.
This part will be used by the plugin to register the CODEC specific elements..
2020-02-05 21:18:57 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/v4l2codecs/linux/h264-ctrls.h:
* sys/v4l2codecs/linux/media.h:
* sys/v4l2codecs/linux/types-compat.h:
* sys/v4l2codecs/linux/v4l2-common.h:
* sys/v4l2codecs/linux/v4l2-controls.h:
* sys/v4l2codecs/linux/videodev2.h:
v4l2codecs: Copy all needed Linux kernel headers
Most of the features we need are very early or not expose yet in the uAPI.
Using an internal copy ensure that we everything we need is defined avoiding
to add load of checks and conditionnal code.
2020-02-04 15:52:45 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* meson_options.txt:
* sys/v4l2codecs/gstv4l2codecdevice.c:
* sys/v4l2codecs/gstv4l2codecdevice.h:
* sys/v4l2codecs/meson.build:
* sys/v4l2codecs/plugin.c:
v4l2codecs: Add device enumeration
This introduces a GstV4L2CodecDevice structure and helper to retrieve a
list of CODEC device drivers. In order to find the device driver we
enumerate all media devices with UDEV. We then get the media controller
topology and locate a entity with function encoder or decoder and make
sure it is linked to two V4L2 IO entity pointing to the same device
node.
2020-02-03 10:06:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
* sys/meson.build:
* sys/v4l2codecs/meson.build:
* sys/v4l2codecs/plugin.c:
v4l2codecs: Introdude a V4L2 CODECs Accelerator plugin
This plugin will support new CODECs uAPI in the Linux kernel. These
consist of an accelerator interface similar to DXVA, NVDEC, VDPAU and
VAAPI.
2020-03-30 20:21:37 +0900 Seungha Yang <seungha@centricular.com>
* sys/msdk/gstmsdkh264enc.c:
* sys/msdk/gstmsdkh264enc.h:
msdkh264enc: Port to h264parser API for frame packing SEI injection
Create frame packing SEI memory only once per set_format() and
reuse it if possible.
2020-03-24 19:23:46 +0900 Seungha Yang <seungha@centricular.com>
* gst/videoparsers/gsth264parse.c:
h264parse: Print all the syntax elements of frame packing for debugging
Other values might be useful for debugging
2020-03-18 10:11:19 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkenc.c:
* sys/msdk/gstmsdkenc.h:
* sys/msdk/gstmsdkh265enc.c:
msdkh265enc: support 8-bit 422 encoding
The media driver can support HEVC 8-bit 422 encoding for non-lowpower
mode since ICL[1], so VPP is not needed for this case.
Sample pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=YUY2 ! msdkh265enc ! \
filesink location=output.h265
[1] https://github.com/intel/media-driver#decodingencoding-features
2020-03-17 15:18:37 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/gstmsdkenc.c:
* sys/msdk/gstmsdkh265enc.c:
msdkh265enc: add support for Y210 in sink pad
Sample pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=Y210 !
msdkh265enc ! filesink location=output.h265
2020-03-20 09:53:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
* sys/msdk/msdk.c:
* sys/msdk/msdk.h:
msdk: add a helper function to get codename of the platform
The features supported in MSDK vary from platform to platform. We may
support some features based on the codename of the platform in future.
2020-03-24 16:00:30 +0900 Seungha Yang <seungha@centricular.com>
* sys/msdk/gstmsdkenc.c:
msdkenc: Try to find corresponding codec frame for encoded output buffer
The input and output buffers should be matched as much as possible
so that various metadata and its ordering to be preserved.
2020-03-22 20:15:42 +0900 Seungha Yang <seungha@centricular.com>
* sys/msdk/gstmsdkh264enc.c:
* sys/msdk/gstmsdkh264enc.h:
* sys/msdk/meson.build:
msdkh264enc: Add support for CEA708 closed caption insertion
Currently supported caption format is CEA708_RAW
2020-03-25 17:20:13 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/gsth264parser.c:
* gst-libs/gst/codecparsers/gsth264parser.h:
* tests/check/libs/h264parser.c:
h264parser: Add a helper method to create and inject raw SEI data
Add an API to create raw SEI nal unit. This would be useful in case
an user want to create SEI nal data and inject the SEI nal data
into bitstream.
2020-03-19 18:25:18 +0900 Seungha Yang <seungha@centricular.com>
* gst-libs/gst/codecparsers/nalutils.c:
* gst-libs/gst/codecparsers/nalutils.h:
* tests/check/libs/nalutils.c:
* tests/check/meson.build:
nalutils: Introduce NAL writer helper methods
Add helper methods for writing h264 and h265 NAL