Re: [libav-devel] [PATCH 02/16] cbs: Add an explicit type for coded bitstream unit types

2018-02-18 Thread Luca Barbato

On 11/02/2018 19:14, Mark Thompson wrote:

Also fix conversion specifiers used for the unit type.
---
  libavcodec/cbs.c   | 12 +++-
  libavcodec/cbs.h   | 19 +++
  libavcodec/cbs_h2645.c |  2 +-
  libavcodec/cbs_mpeg2.c |  4 ++--
  4 files changed, 25 insertions(+), 12 deletions(-)



Seems fine, I was waiting for Diego to dig on it since he loves this :)

lu

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

[libav-devel] [PATCH 02/16] cbs: Add an explicit type for coded bitstream unit types

2018-02-11 Thread Mark Thompson
Also fix conversion specifiers used for the unit type.
---
 libavcodec/cbs.c   | 12 +++-
 libavcodec/cbs.h   | 19 +++
 libavcodec/cbs_h2645.c |  2 +-
 libavcodec/cbs_mpeg2.c |  4 ++--
 4 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c
index fd9baa299..e5819afce 100644
--- a/libavcodec/cbs.c
+++ b/libavcodec/cbs.c
@@ -137,10 +137,10 @@ static int 
cbs_read_fragment_content(CodedBitstreamContext *ctx,
 if (err == AVERROR(ENOSYS)) {
 av_log(ctx->log_ctx, AV_LOG_WARNING,
"Decomposition unimplemented for unit %d "
-   "(type %d).\n", i, frag->units[i].type);
+   "(type %"PRIu32").\n", i, frag->units[i].type);
 } else if (err < 0) {
 av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit %d "
-   "(type %d).\n", i, frag->units[i].type);
+   "(type %"PRIu32").\n", i, frag->units[i].type);
 return err;
 }
 }
@@ -225,7 +225,7 @@ int ff_cbs_write_fragment_data(CodedBitstreamContext *ctx,
 err = ctx->codec->write_unit(ctx, >units[i]);
 if (err < 0) {
 av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to write unit %d "
-   "(type %d).\n", i, frag->units[i].type);
+   "(type %"PRIu32").\n", i, frag->units[i].type);
 return err;
 }
 }
@@ -421,7 +421,8 @@ static int cbs_insert_unit(CodedBitstreamContext *ctx,
 
 int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag,
-   int position, uint32_t type,
+   int position,
+   CodedBitstreamUnitType type,
void *content)
 {
 int err;
@@ -443,7 +444,8 @@ int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
 
 int ff_cbs_insert_unit_data(CodedBitstreamContext *ctx,
 CodedBitstreamFragment *frag,
-int position, uint32_t type,
+int position,
+CodedBitstreamUnitType type,
 uint8_t *data, size_t data_size)
 {
 int err;
diff --git a/libavcodec/cbs.h b/libavcodec/cbs.h
index 34ee78be3..85c7b5557 100644
--- a/libavcodec/cbs.h
+++ b/libavcodec/cbs.h
@@ -27,6 +27,15 @@
 
 struct CodedBitstreamType;
 
+/**
+ * The codec-specific type of a bitstream unit.
+ *
+ * H.264 / AVC: nal_unit_type
+ * H.265 / HEVC: nal_unit_type
+ * MPEG-2: start code value (without prefix)
+ */
+typedef uint32_t CodedBitstreamUnitType;
+
 /**
  * Coded bitstream unit structure.
  *
@@ -40,7 +49,7 @@ typedef struct CodedBitstreamUnit {
 /**
  * Codec-specific type of this unit.
  */
-uint32_t type;
+CodedBitstreamUnitType type;
 
 /**
  * Pointer to the bitstream form of this unit.
@@ -149,7 +158,7 @@ typedef struct CodedBitstreamContext {
  * Types not in this list will be available in bitstream form only.
  * If NULL, all supported types will be decomposed.
  */
-uint32_t *decompose_unit_types;
+CodedBitstreamUnitType *decompose_unit_types;
 /**
  * Length of the decompose_unit_types array.
  */
@@ -250,7 +259,8 @@ void ff_cbs_fragment_uninit(CodedBitstreamContext *ctx,
  */
 int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
CodedBitstreamFragment *frag,
-   int position, uint32_t type,
+   int position,
+   CodedBitstreamUnitType type,
void *content);
 
 /**
@@ -260,7 +270,8 @@ int ff_cbs_insert_unit_content(CodedBitstreamContext *ctx,
  */
 int ff_cbs_insert_unit_data(CodedBitstreamContext *ctx,
 CodedBitstreamFragment *frag,
-int position, uint32_t type,
+int position,
+CodedBitstreamUnitType type,
 uint8_t *data, size_t data_size);
 
 /**
diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c
index 00eed0f28..e3b5bf618 100644
--- a/libavcodec/cbs_h2645.c
+++ b/libavcodec/cbs_h2645.c
@@ -1213,7 +1213,7 @@ static int cbs_h265_write_nal_unit(CodedBitstreamContext 
*ctx,
 
 default:
 av_log(ctx->log_ctx, AV_LOG_ERROR, "Write unimplemented for "
-   "NAL unit type %d.\n", unit->type);
+   "NAL unit type %"PRIu32".\n", unit->type);
 return AVERROR_PATCHWELCOME;
 }
 
diff --git a/libavcodec/cbs_mpeg2.c b/libavcodec/cbs_mpeg2.c
index 54875c2e1..5956f3933 100644
--- a/libavcodec/cbs_mpeg2.c
+++ b/libavcodec/cbs_mpeg2.c
@@ -220,7 +220,7 @@ static int cbs_mpeg2_read_unit(CodedBitstreamContext *ctx,
 START(0xb8, MPEG2RawGroupOfPicturesHeader, 
group_of_pictures_header);