Commit graph

64 commits

Author SHA1 Message Date
Sebastian Dröge aeee6f5b6a gstreamer: Set correct maximum width/height limits 2023-02-03 12:35:24 +02:00
Sebastian Dröge 65eb56e7ad gstreamer: Use correct 10-bit format on big endian systems 2023-02-03 12:35:24 +02:00
Sebastian Dröge 90fd191392 gstreamer: Set force_key_frames=true in CQP/CRF mode
Other modes don't support that so keyframes can't be requested at
arbitrary times.
2023-02-03 12:35:24 +02:00
Sebastian Dröge f24643b48f gstreamer: Add support for setting arbitrary parameters via parameters-string property 2023-02-03 12:35:18 +02:00
Sebastian Dröge d746164ba0 gstreamer: Fix naming of function name that was taken over from the SVT-HEVC encoder 2023-02-03 12:34:38 +02:00
Sebastian Dröge ddb9a037e1 gstreamer: Don't overwrite application configuration on initialization and initialize with the default configuration 2023-02-03 12:34:38 +02:00
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