diff options
author | Seungha Yang <seungha@centricular.com> | 2021-04-09 01:54:50 +0900 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-04-09 12:13:24 +0000 |
commit | fee725f3cc75a74b77ee3ce785e65f1d2d500305 (patch) | |
tree | 73553e6c886be17cb9ca38f22564315d88775b25 /gst-libs | |
parent | f7a341a1f0f7ebe603af573f33b02d5c6445ae02 (diff) | |
download | gstreamer-plugins-bad-fee725f3cc75a74b77ee3ce785e65f1d2d500305.tar.gz |
codecs: vp9decoder: Update docs
* Remove "FIXME 1.20": All the bits are addressed already by using
vp9parse element
* Fix copy & paste errors: Some comments were copied from h264decoder
blindly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2151>
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/codecs/gstvp9decoder.h | 95 |
1 files changed, 70 insertions, 25 deletions
diff --git a/gst-libs/gst/codecs/gstvp9decoder.h b/gst-libs/gst/codecs/gstvp9decoder.h index 677ffbd11..8a6b9b4fc 100644 --- a/gst-libs/gst/codecs/gstvp9decoder.h +++ b/gst-libs/gst/codecs/gstvp9decoder.h @@ -59,68 +59,113 @@ struct _GstVp9Decoder /** * GstVp9DecoderClass: - * @new_sequence: Notifies subclass of SPS update - * @new_picture: Optional. - * Called whenever new #GstVp9Picture is created. - * Subclass can set implementation specific user data - * on the #GstVp9Picture via gst_vp9_picture_set_user_data() - * @duplicate_picture: Duplicate the #GstVp9Picture - * @start_picture: Optional. - * Called per one #GstVp9Picture to notify subclass to prepare - * decoding process for the #GstVp9Picture - * @decode_slice: Provides per slice data with parsed slice header and - * required raw bitstream for subclass to decode it - * @end_picture: Optional. - * Called per one #GstVp9Picture to notify subclass to finish - * decoding process for the #GstVp9Picture - * @output_picture: Called with a #GstVp9Picture which is required to be outputted. - * Subclass can retrieve parent #GstVideoCodecFrame by using - * gst_video_decoder_get_frame() with system_frame_number - * and the #GstVideoCodecFrame must be consumed by subclass via - * gst_video_decoder_{finish,drop,release}_frame(). */ struct _GstVp9DecoderClass { GstVideoDecoderClass parent_class; + /** + * GstVp9Decoder::new_sequence: + * + * Notifies subclass of video sequence update such as resolution, bitdepth, + * profile. + * + * Since: 1.18 + */ gboolean (*new_sequence) (GstVp9Decoder * decoder, const GstVp9FrameHeader *frame_hdr); /** * GstVp9Decoder:new_picture: * @decoder: a #GstVp9Decoder - * @frame: (nullable): (transfer none): a #GstVideoCodecFrame + * @frame: (transfer none): a #GstVideoCodecFrame * @picture: (transfer none): a #GstVp9Picture * - * FIXME 1.20: vp9parse element can splitting super frames, - * and then we can ensure non-null @frame + * Optional. Called whenever new #GstVp9Picture is created. + * Subclass can set implementation specific user data on the #GstVp9Picture + * via gst_vp9_picture_set_user_data() + * + * Since: 1.18 */ gboolean (*new_picture) (GstVp9Decoder * decoder, GstVideoCodecFrame * frame, GstVp9Picture * picture); + /** + * GstVp9Decoder:duplicate_picture: + * @decoder: a #GstVp9Decoder + * @frame: (transfer none): a #GstVideoCodecFrame + * @picture: (transfer none): a #GstVp9Picture to be duplicated + * + * Optional. Called to duplicate @picture when show_existing_frame flag is set + * in the parsed vp9 frame header. Returned #GstVp9Picture from this method + * should hold already decoded picture data corresponding to the @picture, + * since the returned #GstVp9Picture from this method will be passed to + * the output_picture method immediately without additional decoding process. + * + * If this method is not implemented by subclass, baseclass will drop + * current #GstVideoCodecFrame without additional processing for the current + * frame. + * + * Returns: (transfer full): a #GstVp9Picture or %NULL if failed to duplicate + * @picture. + * + * Since: 1.18 + */ GstVp9Picture * (*duplicate_picture) (GstVp9Decoder * decoder, GstVideoCodecFrame * frame, GstVp9Picture * picture); + /** + * GstVp9Decoder:start_picture: + * @decoder: a #GstVp9Decoder + * @picture: (transfer none): a #GstVp9Picture + * + * Optional. Called to notify subclass to prepare decoding process for + * @picture + * + * Since: 1.18 + */ gboolean (*start_picture) (GstVp9Decoder * decoder, GstVp9Picture * picture); + /** + * GstVp9Decoder:decode_picture: + * @decoder: a #GstVp9Decoder + * @picture: (transfer none): a #GstVp9Picture to decoder + * @dpb: (transfer none): a #GstVp9Dpb + * + * Called to notify decoding for subclass to decoder given @picture with + * given @dpb + * + * Since: 1.18 + */ gboolean (*decode_picture) (GstVp9Decoder * decoder, GstVp9Picture * picture, GstVp9Dpb * dpb); + /** + * GstVp9Decoder::end_picture: + * @decoder: a #GstVp9Decoder + * @picture: (transfer none): a #GstVp9Picture + * + * Optional. Called per one #GstVp9Picture to notify subclass to finish + * decoding process for the #GstVp9Picture + * + * Since: 1.18 + */ gboolean (*end_picture) (GstVp9Decoder * decoder, GstVp9Picture * picture); /** * GstVp9Decoder:output_picture: * @decoder: a #GstVp9Decoder - * @frame: (nullable): (transfer full): a #GstVideoCodecFrame + * @frame: (transfer full): a #GstVideoCodecFrame * @picture: (transfer full): a #GstVp9Picture * - * FIXME 1.20: vp9parse element can splitting super frames, - * and then we can ensure non-null @frame + * Called to notify @picture is ready to be outputted. + * + * Since: 1.18 */ GstFlowReturn (*output_picture) (GstVp9Decoder * decoder, GstVideoCodecFrame * frame, |