Re: [FFmpeg-devel] [PATCH 2/4 v2] avcodec/cbs: allow cbs_read_fragment_content() to discard units

2020-12-09 Thread James Almer

On 12/9/2020 6:22 PM, Mark Thompson wrote:

On 15/11/2020 21:55, James Almer wrote:
The caller may not need all units in a fragment in reading only 
scenarios. They

could in fact alter global state stored in the private CodedBitstreamType
fields in an undesirable way.
And unlike preventing decomposition of units, discarding can be done 
based on

parsed values within the unit.

Signed-off-by: James Almer 
---
  libavcodec/cbs.c | 6 ++
  1 file changed, 6 insertions(+)

diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c
index c7afccd6f5..f4312d199b 100644
--- a/libavcodec/cbs.c
+++ b/libavcodec/cbs.c
@@ -202,6 +202,12 @@ static int 
cbs_read_fragment_content(CodedBitstreamContext *ctx,

  av_log(ctx->log_ctx, AV_LOG_VERBOSE,
 "Decomposition unimplemented for unit %d "
 "(type %"PRIu32").\n", i, unit->type);
+    } else if (err  == AVERROR(EAGAIN)) {
+    av_log(ctx->log_ctx, AV_LOG_VERBOSE,
+   "Discarding unit %d "
+   "(type %"PRIu32").\n", i, unit->type);
+    av_buffer_unref(>content_ref);
+    unit->content = NULL;
  } else if (err < 0) {
  av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit 
%d "

 "(type %"PRIu32").\n", i, unit->type);



The description and log message no longer match exactly what it does.


Would "Discarding content for unit %d" be ok?



Code part LGTM.

- 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-requ...@ffmpeg.org with subject "unsubscribe".


___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-devel] [PATCH 2/4 v2] avcodec/cbs: allow cbs_read_fragment_content() to discard units

2020-12-09 Thread Mark Thompson

On 15/11/2020 21:55, James Almer wrote:

The caller may not need all units in a fragment in reading only scenarios. They
could in fact alter global state stored in the private CodedBitstreamType
fields in an undesirable way.
And unlike preventing decomposition of units, discarding can be done based on
parsed values within the unit.

Signed-off-by: James Almer 
---
  libavcodec/cbs.c | 6 ++
  1 file changed, 6 insertions(+)

diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c
index c7afccd6f5..f4312d199b 100644
--- a/libavcodec/cbs.c
+++ b/libavcodec/cbs.c
@@ -202,6 +202,12 @@ static int cbs_read_fragment_content(CodedBitstreamContext 
*ctx,
  av_log(ctx->log_ctx, AV_LOG_VERBOSE,
 "Decomposition unimplemented for unit %d "
 "(type %"PRIu32").\n", i, unit->type);
+} else if (err  == AVERROR(EAGAIN)) {
+av_log(ctx->log_ctx, AV_LOG_VERBOSE,
+   "Discarding unit %d "
+   "(type %"PRIu32").\n", i, unit->type);
+av_buffer_unref(>content_ref);
+unit->content = NULL;
  } else if (err < 0) {
  av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit %d "
 "(type %"PRIu32").\n", i, unit->type);



The description and log message no longer match exactly what it does.

Code part LGTM.

- 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-requ...@ffmpeg.org with subject "unsubscribe".

[FFmpeg-devel] [PATCH 2/4 v2] avcodec/cbs: allow cbs_read_fragment_content() to discard units

2020-11-15 Thread James Almer
The caller may not need all units in a fragment in reading only scenarios. They
could in fact alter global state stored in the private CodedBitstreamType
fields in an undesirable way.
And unlike preventing decomposition of units, discarding can be done based on
parsed values within the unit.

Signed-off-by: James Almer 
---
 libavcodec/cbs.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c
index c7afccd6f5..f4312d199b 100644
--- a/libavcodec/cbs.c
+++ b/libavcodec/cbs.c
@@ -202,6 +202,12 @@ static int cbs_read_fragment_content(CodedBitstreamContext 
*ctx,
 av_log(ctx->log_ctx, AV_LOG_VERBOSE,
"Decomposition unimplemented for unit %d "
"(type %"PRIu32").\n", i, unit->type);
+} else if (err  == AVERROR(EAGAIN)) {
+av_log(ctx->log_ctx, AV_LOG_VERBOSE,
+   "Discarding unit %d "
+   "(type %"PRIu32").\n", i, unit->type);
+av_buffer_unref(>content_ref);
+unit->content = NULL;
 } else if (err < 0) {
 av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit %d "
"(type %"PRIu32").\n", i, unit->type);
-- 
2.29.2

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".