Commit graph

58 commits

Author SHA1 Message Date
Sebastian Dröge
7b1b33aff2 gstreamer: Clean up property handling
Use more correct types, defaults and clean up property names a bit.
This now matches the configuration provided by ffmpeg.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
78ee7e82d9 gstreamer: Mark all internal functions as static 2023-02-03 12:34:38 +02:00
Sebastian Dröge
10769e7fe6 gstreamer: Fix encoder and buffer state life cycle
Allocate/deallocate the encoder in `open()`/`close()` and its buffers in
`start()` / `stop()`.

Also fail correctly if configuring the encoder fails.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
24d6027d2e gstreamer: Remove unused frame_count and dts_offset 2023-02-03 12:34:38 +02:00
Sebastian Dröge
2d250439f1 gstreamer: Fix debug category description 2023-02-03 12:34:38 +02:00
Sebastian Dröge
aba0b0e90a gstreamer: Use stream-format=obu-stream alignment=tu in the caps
There is no byte-stream/au format for AV1 but only for H264, and the
encoder actually outputs obu-stream/tu instead of the annexb
stream-format that is similar to H264 byte-stream format.

Without this the encoder can't be used with elements that require a
specific AV1 stream-format, e.g. the MP4 or Matroska/WebM muxer.
2023-01-26 01:46:46 +00:00
Sebastian Dröge
80e364876b gstreamer: Fix code style by running clang-format 2023-01-12 21:38:51 +02:00
Sebastian Dröge
7652026f0d gstreamer: Don't leak all video frames 2023-01-12 21:38:51 +02:00
Sebastian Dröge
ff911c76c0 gstreamer: Don't explicitly drop frames on stop()
This is already handled by the base class.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
f56e8b2fad gstreamer: Remove unused variable 2023-01-12 01:06:38 +00:00
Sebastian Dröge
040c92d8b0 gstreamer: Stop outputting frames if pushing one has caused an error 2023-01-12 01:06:38 +00:00
Sebastian Dröge
5f03d9c4d1 gstreamer: Don't set bogus LIVE flag on output buffers 2023-01-12 01:06:38 +00:00
Sebastian Dröge
85b9c8e103 gstreamer: Allocate output buffers via the encoder
This makes sure the correct allocator and configuration is used.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
30e0c1e4fd gstreamer: Negotiate the encoder immediately after setting the format 2023-01-12 01:06:38 +00:00
Sebastian Dröge
d9efa54783 gstreamer: Fix output state reference leak 2023-01-12 01:06:38 +00:00
Sebastian Dröge
b498bdb765 gstreamer: Add missing property setter/getter for lookahead property 2023-01-12 01:06:38 +00:00
Sebastian Dröge
13fa6d387d gstreamer: Fix reference leak of the input state if the caps are changing
Also remove misleading comment: reconfiguration was already handled by
the following code.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
9128978042 gstreamer: The encoder has no maximum latency
It will buffer as much as it needs to.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
785ba05bca gstreamer: Announce support for video meta on the input side
This allows handling input buffers with non-default strides, which was
already handled fine by the element code.

Without this, potentially expensive conversion was needed.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
c5b166491c gstreamer: Don't override various virtual methods unnecessarily
There was no custom behaviour in there.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
158c1f6602 gstreamer: Don't unnecessarily override decide_allocation()
This avoids more optimal output buffer allocation.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
3b3e862580 gstreamer: Don't set a DTS and remove non-working DTS hack
The previous hack would create bogus DTS that confused other elements.

Fixes https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/1915
2023-01-12 01:06:38 +00:00
Sebastian Dröge
a8c6eb0606 gstreamer: Don't use private data but simply always get the oldest frame
The private data is not copied over for SVT AV1 encoder so this code
path would've never worked.

Instead of relying on the PTS, which is not required to be unique or
existing at all, we always take the oldest frame as AV1 has no frame
reordering / B frames.
2023-01-12 01:06:38 +00:00
Christopher Degawa
8478600596 gst: init metadata to null
Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
2022-07-09 15:19:11 -05:00
Cidana-Developers
e2a6d5f76d refine reference scaling
1. modify codes by review suggestion
2. clean-up macros
2022-05-26 23:29:51 +00:00
Cidana-Developers
b223764832 add random access for reference scaling
1. add random access configuration for reference scaling fixed and random mode
2. add e2e tests for random access configuration of reference scaling
2022-05-26 23:29:51 +00:00
anaghdin
02258ba529 - In lowdelay VBR is not supported: forces CBR, In RA, CBR is not supported, forces VBR
- Limit the max bit rate and target bitrate to 100,000 kbps
- Remove frame_rate from API. Inside library frame_rate is always in Q16 format
- Fix the seg fault with 2 PASS and max bit rate
- Remove frame_rate from CI and gstreamer
2022-04-01 23:47:38 +00:00
Acky Xu
86c308549f Prevent gstreamer from reinitializing svt default values 2022-03-26 02:28:16 +00:00
Wojciech Kapsa
f8c0485af4 SVT-AV1 0.9 speed updated. 2022-02-18 07:01:57 +00:00
hassount
a85ab85bf8 Fix warning typos and Gstreamer ci test 2022-01-15 06:30:46 +00:00
Christopher Degawa
b1d167ec22 rename unrestricted motion vector to restricted motion vector
Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
2022-01-06 16:46:53 -06:00
Christopher Degawa
a2ec26a8ca rename disable-dlf to enable-dlf
Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
2022-01-06 16:46:53 -06:00
Christopher Degawa
571897ef0c rename --tf-level to --enable-tf
Also does the renaming for the API and the config file option along
with changing the option to a EbBool

Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
2022-01-05 14:35:58 -06:00
Christopher Degawa
4bd83fb3c0 gstreamer: remove useless if 0
Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
2021-12-29 12:51:18 -06:00
hassount
4d99d86f99 Cleanup some API signals
API signaled (re)moved:

- intra_angle_delta
- palette_level
- 16-bit-pipeline
- sb_sz
- super_block_size
- partition_depth
- warp motion
- global motion
- self guided filter level
- weiner filter level
- inter intra compound
- paeth
- smooth
- mrp level
- spatial sse
- over_bndry_blk
- new_nearest_comb_inject
- nsq_table
- frame_end_cdf_update
- pred_me
- bipred_3x3_inject
- compound_level
- set_chroma_mode
- disable_cfl_flag
- obmc_level
- rdoq_level
- filter_intra_level
- enable_intra_edge_filter
- pic_based_rate_est
- unused me parameters
- unused me variables
- intrabc_mode
- enable_hbd_mode_decision
- enable_qp_scaling_flag
- ten_bit_format
- enable_adaptive_mini_gop
- max_heirachical_level
- speed_control_flag

Move unnecessary definitions to EbDefinitions.h
2021-12-29 12:51:12 -06:00
hassount
775f8fca11 Cleanup unused tokens and apis - Fix Lookahead distance documentation to be capped at 120 2021-12-17 23:09:45 -08:00
palexander-14
820842c228 Added support for color description information
The following parameters are supported:

- `color_range`
- `color_primaries`
- `transfer_characteristics`
- `matrix_coefficients`

Added writing of color description into a bit stream
Updated the encoder config structure (API) to support color description parameters
Updated the encoding app to support color description in config files
Added unit tests for color description settings
Added default color description values into the gst plugin
Updated documentation
2021-05-07 14:26:44 -05:00
Omar
bf46cfe44c Unused code cleanup (IME, TRL, LAD) 2021-05-07 01:27:36 -07:00
Omar Khlif
f94f337ec7 Tune and redesign TF controls 2021-04-29 18:33:59 -05:00
Christopher Degawa
f6a75cd53e docs: Update url to gitlab.com
Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
2021-02-18 13:46:46 -06:00
Jun Zhao
df40f636ba replace OpenVisualCloud with AOMediaCodec
replace OpenVisualCloud with AOMediaCodec, video.tar.gz file is still
under OpenVisualCloud, so keep the other links.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2020-09-22 10:55:09 -07:00
Hassene Tmar
99ad43e507 Run-time flags cleanup (#1476)
* Cleanup users guide, configuration file and remove extra run-time signals that are not anymore applicable.
* Restrict intra bc for the case where scm is set to 1 only

Co-authored-by: Omran <omran.abdelkafi@intel.com>
2020-09-04 17:06:35 -07:00
PhoenixWorthVCD
c3467b8c13 Improve Lambda Generation and optimize preset trade-offs (#1448)
* use frame info to generate lambda
* Add new settings for optimized trade-offs
2020-08-31 11:21:48 -07:00
Aaron Huang
d0f0e8581b Svt-02 CLI features (#1408)
* updating CLI support for RDOQ
* updating CLI support for Spatial SSE
* updating CLI support for Palette
* updating CLI support for ALTREF
* updating CLI for CDEF
* updated user guide, sample cfg, --help, and macro use
* Removed all added macros RDOQ_CLI, SSSE_CLI, PALETTE_CLI, ALTREF_CLI, and CDEF_CLI. Renaming and new changes are now made under existing active macros
* removed unnecessary #else and #endif causing build failure
* removed boolean conversion for static_config.cdef_level in non default case
* update CDEF documentation to reflect naming changes
* update altref and palette documentation to reflect naming changes
2020-08-18 10:35:32 -07:00
Omar Khlif
a7c9c6aba8 add CLI , define MR and MRS as enc-mode
Co-authored-by: hguermaz <Hassen.Guermazi@intel.com>
Co-authored-by: kelvinhu325 <kelvin.hu@intel.com>
Co-authored-by: Amir Naghdinezhad  <Amir.Naghdinezhad@intel.com>
Co-authored-by: PhoenixWorthVCD  <phoenix.worth@intel.com>
Co-authored-by: lijing0010 <jing.b.li@intel.com>
Co-authored-by: NaderMahdi  <Nader.Mahdi@intel.com>
Co-authored-by: chkngit <Chekib.Nouira@intel.com>
2020-08-07 21:37:36 -07:00
Omar Khlif
0e98f89470 code cleanup
Co-authored-by: hguermaz <Hassen.Guermazi@intel.com>
Co-authored-by: kelvinhu325 <kelvin.hu@intel.com>
Co-authored-by: Amir Naghdinezhad  <Amir.Naghdinezhad@intel.com>
Co-authored-by: PhoenixWorthVCD  <phoenix.worth@intel.com>
Co-authored-by: lijing0010 <jing.b.li@intel.com>
Co-authored-by: NaderMahdi  <Nader.Mahdi@intel.com>
Co-authored-by: chkngit <Chekib.Nouira@intel.com>
2020-08-07 21:37:36 -07:00
Jun
25d1930977 Use GST_ELEMENT_ERROR macro for GST_FLOW_ERROR (#1357)
* Use GST_ELEMENT_ERROR macro for GST_FLOW_ERROR
* swap TEXT and DEBUG field

Signed-off-by: Jun Tian <jun.tian@intel.com>
2020-07-13 11:15:58 -07:00
ttrigui
add8269e17 Unpin thread execution and multi thread buffer tuning (#1275)
Add the option of unpinning threads from being executed on cores 0-x when -lp x is defined.
Tuning the multi-threaded buffer tuning for better efficiency with low core count when running in a VOD environment.
2020-06-04 11:33:25 -07:00
Jun
0176e535c6 [GStreamer]Update encoder interface and add CI test (#1240)
Signed-off-by: Jun Tian <jun.tian@intel.com>
Co-authored-by: Christopher Degawa <ccom@randomderp.com>
2020-04-22 10:05:11 -07:00
elenril
9f90c74d3c [RFC] consistent namespacing for public API functions (#951)
* EbSvtAv1Dec.h: remove prototype for non-existent functions

Those functions have apparently never existed in the tree:
- eb_peek_sequence_header()
- eb_svt_decode_obu()
- eb_svt_decode_tu()
- eb_dec_flush()
- eb_get_stream_info()

* EbSvtAv1Dec.h: consistently use the svt_av1_dec_ namespace for public functions

* EbSvtAv1Enc.h: consistently use the svt_av1_enc_ namespace for public functions
2020-04-15 12:22:54 -07:00