* [FFmpeg-devel] [PATCH 1/6] av1dec: Add force_integer_mv derived field for decoder use
@ 2024-04-27 15:30 Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 2/6] dxva2_av1: Use av1dec force_integer_mv value Mark Thompson
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Mark Thompson @ 2024-04-27 15:30 UTC (permalink / raw)
To: ffmpeg-devel
This is not the same as the syntax element value in the frame header
because the specification parsing tables override the value on intra
frames.
---
On 27/04/2024 15:58, Lynne wrote:
> This looks better to me.
HYG.
Of these, only VAAPI tested. (And probably it never did anything anyway.)
libavcodec/av1dec.c | 7 +++++++
libavcodec/av1dec.h | 6 ++++++
2 files changed, 13 insertions(+)
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index 79a30a114d..601e3f05e1 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -725,6 +725,8 @@ static void av1_frame_replace(AV1Frame *dst, const AV1Frame *src)
sizeof(dst->ref_frame_sign_bias));
memcpy(dst->order_hints, src->order_hints,
sizeof(dst->order_hints));
+
+ dst->force_integer_mv = src->force_integer_mv;
}
static av_cold int av1_decode_free(AVCodecContext *avctx)
@@ -1255,6 +1257,11 @@ static int get_current_frame(AVCodecContext *avctx)
order_hint_info(s);
load_grain_params(s);
+ s->cur_frame.force_integer_mv =
+ s->raw_frame_header->force_integer_mv ||
+ s->raw_frame_header->frame_type == AV1_FRAME_KEY ||
+ s->raw_frame_header->frame_type == AV1_FRAME_INTRA_ONLY;
+
return ret;
}
diff --git a/libavcodec/av1dec.h b/libavcodec/av1dec.h
index 66a732d781..8b2a7b0896 100644
--- a/libavcodec/av1dec.h
+++ b/libavcodec/av1dec.h
@@ -67,6 +67,12 @@ typedef struct AV1Frame {
// OrderHints[] when this is the current frame, otherwise
// SavedOrderHints[s][] when is the reference frame in slot s.
uint8_t order_hints[AV1_TOTAL_REFS_PER_FRAME];
+
+ // force_integer_mv value at the end of the frame header parsing.
+ // This is not the same as the syntax element value in
+ // raw_frame_header because the specification parsing tables
+ // override the value on intra frames.
+ uint8_t force_integer_mv;
} AV1Frame;
typedef struct TileGroupInfo {
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* [FFmpeg-devel] [PATCH 2/6] dxva2_av1: Use av1dec force_integer_mv value
2024-04-27 15:30 [FFmpeg-devel] [PATCH 1/6] av1dec: Add force_integer_mv derived field for decoder use Mark Thompson
@ 2024-04-27 15:30 ` Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 3/6] vdpau_av1: " Mark Thompson
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Mark Thompson @ 2024-04-27 15:30 UTC (permalink / raw)
To: ffmpeg-devel
---
libavcodec/dxva2_av1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/dxva2_av1.c b/libavcodec/dxva2_av1.c
index 5b95f99c9b..1b55510659 100644
--- a/libavcodec/dxva2_av1.c
+++ b/libavcodec/dxva2_av1.c
@@ -101,7 +101,7 @@ int ff_dxva2_av1_fill_picture_parameters(const AVCodecContext *avctx, AVDXVACont
pp->coding.dual_filter = seq->enable_dual_filter;
pp->coding.jnt_comp = seq->enable_jnt_comp;
pp->coding.screen_content_tools = frame_header->allow_screen_content_tools;
- pp->coding.integer_mv = frame_header->force_integer_mv || !(frame_header->frame_type & 1);
+ pp->coding.integer_mv = h->cur_frame.force_integer_mv;
pp->coding.cdef = seq->enable_cdef;
pp->coding.restoration = seq->enable_restoration;
pp->coding.film_grain = seq->film_grain_params_present && !(avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN);
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* [FFmpeg-devel] [PATCH 3/6] vdpau_av1: Use av1dec force_integer_mv value
2024-04-27 15:30 [FFmpeg-devel] [PATCH 1/6] av1dec: Add force_integer_mv derived field for decoder use Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 2/6] dxva2_av1: Use av1dec force_integer_mv value Mark Thompson
@ 2024-04-27 15:30 ` Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 4/6] nvdec_av1: " Mark Thompson
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Mark Thompson @ 2024-04-27 15:30 UTC (permalink / raw)
To: ffmpeg-devel
---
libavcodec/vdpau_av1.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libavcodec/vdpau_av1.c b/libavcodec/vdpau_av1.c
index b74ea6aa0c..a1aff79bb7 100644
--- a/libavcodec/vdpau_av1.c
+++ b/libavcodec/vdpau_av1.c
@@ -91,9 +91,7 @@ static int vdpau_av1_start_frame(AVCodecContext *avctx,
info->show_frame = frame_header->show_frame;
info->disable_cdf_update = frame_header->disable_cdf_update;
info->allow_screen_content_tools = frame_header->allow_screen_content_tools;
- info->force_integer_mv = frame_header->force_integer_mv ||
- frame_header->frame_type == AV1_FRAME_INTRA_ONLY ||
- frame_header->frame_type == AV1_FRAME_KEY;
+ info->force_integer_mv = s->cur_frame.force_integer_mv;
info->coded_denom = frame_header->coded_denom;
info->allow_intrabc = frame_header->allow_intrabc;
info->allow_high_precision_mv = frame_header->allow_high_precision_mv;
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* [FFmpeg-devel] [PATCH 4/6] nvdec_av1: Use av1dec force_integer_mv value
2024-04-27 15:30 [FFmpeg-devel] [PATCH 1/6] av1dec: Add force_integer_mv derived field for decoder use Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 2/6] dxva2_av1: Use av1dec force_integer_mv value Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 3/6] vdpau_av1: " Mark Thompson
@ 2024-04-27 15:30 ` Mark Thompson
2024-05-06 17:19 ` Timo Rothenpieler
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 5/6] vaapi_av1: Fix " Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 6/6] vulkan_av1: " Mark Thompson
4 siblings, 1 reply; 9+ messages in thread
From: Mark Thompson @ 2024-04-27 15:30 UTC (permalink / raw)
To: ffmpeg-devel
---
libavcodec/nvdec_av1.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/libavcodec/nvdec_av1.c b/libavcodec/nvdec_av1.c
index 4efa420e66..8a46db1ed5 100644
--- a/libavcodec/nvdec_av1.c
+++ b/libavcodec/nvdec_av1.c
@@ -106,9 +106,7 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
.show_frame = frame_header->show_frame,
.disable_cdf_update = frame_header->disable_cdf_update,
.allow_screen_content_tools = frame_header->allow_screen_content_tools,
- .force_integer_mv = frame_header->force_integer_mv ||
- frame_header->frame_type == AV1_FRAME_INTRA_ONLY ||
- frame_header->frame_type == AV1_FRAME_KEY,
+ .force_integer_mv = s->cur_frame.force_integer_mv;
.coded_denom = frame_header->coded_denom,
.allow_intrabc = frame_header->allow_intrabc,
.allow_high_precision_mv = frame_header->allow_high_precision_mv,
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* [FFmpeg-devel] [PATCH 5/6] vaapi_av1: Fix force_integer_mv value
2024-04-27 15:30 [FFmpeg-devel] [PATCH 1/6] av1dec: Add force_integer_mv derived field for decoder use Mark Thompson
` (2 preceding siblings ...)
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 4/6] nvdec_av1: " Mark Thompson
@ 2024-04-27 15:30 ` Mark Thompson
2024-04-30 6:03 ` Xiang, Haihao
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 6/6] vulkan_av1: " Mark Thompson
4 siblings, 1 reply; 9+ messages in thread
From: Mark Thompson @ 2024-04-27 15:30 UTC (permalink / raw)
To: ffmpeg-devel
---
libavcodec/vaapi_av1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/vaapi_av1.c b/libavcodec/vaapi_av1.c
index 1f563483b9..f61bf63098 100644
--- a/libavcodec/vaapi_av1.c
+++ b/libavcodec/vaapi_av1.c
@@ -220,7 +220,7 @@ static int vaapi_av1_start_frame(AVCodecContext *avctx,
.error_resilient_mode = frame_header->error_resilient_mode,
.disable_cdf_update = frame_header->disable_cdf_update,
.allow_screen_content_tools = frame_header->allow_screen_content_tools,
- .force_integer_mv = frame_header->force_integer_mv,
+ .force_integer_mv = s->cur_frame.force_integer_mv,
.allow_intrabc = frame_header->allow_intrabc,
.use_superres = frame_header->use_superres,
.allow_high_precision_mv = frame_header->allow_high_precision_mv,
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* [FFmpeg-devel] [PATCH 6/6] vulkan_av1: Fix force_integer_mv value
2024-04-27 15:30 [FFmpeg-devel] [PATCH 1/6] av1dec: Add force_integer_mv derived field for decoder use Mark Thompson
` (3 preceding siblings ...)
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 5/6] vaapi_av1: Fix " Mark Thompson
@ 2024-04-27 15:30 ` Mark Thompson
4 siblings, 0 replies; 9+ messages in thread
From: Mark Thompson @ 2024-04-27 15:30 UTC (permalink / raw)
To: ffmpeg-devel
---
libavcodec/vulkan_av1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c
index 25ab4ecc70..a550215e32 100644
--- a/libavcodec/vulkan_av1.c
+++ b/libavcodec/vulkan_av1.c
@@ -435,7 +435,7 @@ static int vk_av1_start_frame(AVCodecContext *avctx,
.render_and_frame_size_different = frame_header->render_and_frame_size_different,
.allow_screen_content_tools = frame_header->allow_screen_content_tools,
.is_filter_switchable = frame_header->is_filter_switchable,
- .force_integer_mv = frame_header->force_integer_mv,
+ .force_integer_mv = pic->force_integer_mv,
.frame_size_override_flag = frame_header->frame_size_override_flag,
.buffer_removal_time_present_flag = frame_header->buffer_removal_time_present_flag,
.allow_intrabc = frame_header->allow_intrabc,
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 5/6] vaapi_av1: Fix force_integer_mv value
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 5/6] vaapi_av1: Fix " Mark Thompson
@ 2024-04-30 6:03 ` Xiang, Haihao
0 siblings, 0 replies; 9+ messages in thread
From: Xiang, Haihao @ 2024-04-30 6:03 UTC (permalink / raw)
To: ffmpeg-devel
On Sa, 2024-04-27 at 16:30 +0100, Mark Thompson wrote:
> ---
> libavcodec/vaapi_av1.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/vaapi_av1.c b/libavcodec/vaapi_av1.c
> index 1f563483b9..f61bf63098 100644
> --- a/libavcodec/vaapi_av1.c
> +++ b/libavcodec/vaapi_av1.c
> @@ -220,7 +220,7 @@ static int vaapi_av1_start_frame(AVCodecContext *avctx,
> .error_resilient_mode = frame_header-
> >error_resilient_mode,
> .disable_cdf_update = frame_header->disable_cdf_update,
> .allow_screen_content_tools = frame_header-
> >allow_screen_content_tools,
> - .force_integer_mv = frame_header->force_integer_mv,
> + .force_integer_mv = s->cur_frame.force_integer_mv,
> .allow_intrabc = frame_header->allow_intrabc,
> .use_superres = frame_header->use_superres,
> .allow_high_precision_mv = frame_header-
> >allow_high_precision_mv,
LGTM, vaapi av1 also requires this value instead of the syntax element value.
Thanks
Haihao
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 4/6] nvdec_av1: Use av1dec force_integer_mv value
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 4/6] nvdec_av1: " Mark Thompson
@ 2024-05-06 17:19 ` Timo Rothenpieler
2024-05-06 19:30 ` Mark Thompson
0 siblings, 1 reply; 9+ messages in thread
From: Timo Rothenpieler @ 2024-05-06 17:19 UTC (permalink / raw)
To: ffmpeg-devel
On 27.04.2024 17:30, Mark Thompson wrote:
> ---
> libavcodec/nvdec_av1.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/libavcodec/nvdec_av1.c b/libavcodec/nvdec_av1.c
> index 4efa420e66..8a46db1ed5 100644
> --- a/libavcodec/nvdec_av1.c
> +++ b/libavcodec/nvdec_av1.c
> @@ -106,9 +106,7 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
> .show_frame = frame_header->show_frame,
> .disable_cdf_update = frame_header->disable_cdf_update,
> .allow_screen_content_tools = frame_header->allow_screen_content_tools,
> - .force_integer_mv = frame_header->force_integer_mv ||
> - frame_header->frame_type == AV1_FRAME_INTRA_ONLY ||
> - frame_header->frame_type == AV1_FRAME_KEY,
> + .force_integer_mv = s->cur_frame.force_integer_mv;
that ";" should be a ","
Works fine with that fixed.
> .coded_denom = frame_header->coded_denom,
> .allow_intrabc = frame_header->allow_intrabc,
> .allow_high_precision_mv = frame_header->allow_high_precision_mv,
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [FFmpeg-devel] [PATCH 4/6] nvdec_av1: Use av1dec force_integer_mv value
2024-05-06 17:19 ` Timo Rothenpieler
@ 2024-05-06 19:30 ` Mark Thompson
0 siblings, 0 replies; 9+ messages in thread
From: Mark Thompson @ 2024-05-06 19:30 UTC (permalink / raw)
To: ffmpeg-devel
On 06/05/2024 18:19, Timo Rothenpieler wrote:
> On 27.04.2024 17:30, Mark Thompson wrote:
>> ---
>> libavcodec/nvdec_av1.c | 4 +---
>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/libavcodec/nvdec_av1.c b/libavcodec/nvdec_av1.c
>> index 4efa420e66..8a46db1ed5 100644
>> --- a/libavcodec/nvdec_av1.c
>> +++ b/libavcodec/nvdec_av1.c
>> @@ -106,9 +106,7 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u
>> .show_frame = frame_header->show_frame,
>> .disable_cdf_update = frame_header->disable_cdf_update,
>> .allow_screen_content_tools = frame_header->allow_screen_content_tools,
>> - .force_integer_mv = frame_header->force_integer_mv ||
>> - frame_header->frame_type == AV1_FRAME_INTRA_ONLY ||
>> - frame_header->frame_type == AV1_FRAME_KEY,
>> + .force_integer_mv = s->cur_frame.force_integer_mv;
>
> that ";" should be a ","
>
> Works fine with that fixed.
Urgh, thank you for testing and catching that.
Fixed and pushed the set (with approval from Lynne).
Thanks,
- Mark
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-05-06 19:30 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-27 15:30 [FFmpeg-devel] [PATCH 1/6] av1dec: Add force_integer_mv derived field for decoder use Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 2/6] dxva2_av1: Use av1dec force_integer_mv value Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 3/6] vdpau_av1: " Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 4/6] nvdec_av1: " Mark Thompson
2024-05-06 17:19 ` Timo Rothenpieler
2024-05-06 19:30 ` Mark Thompson
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 5/6] vaapi_av1: Fix " Mark Thompson
2024-04-30 6:03 ` Xiang, Haihao
2024-04-27 15:30 ` [FFmpeg-devel] [PATCH 6/6] vulkan_av1: " Mark Thompson
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git