On 3/2/2022 8:23 PM, Vignesh Venkatasubramanian wrote:
On Wed, Mar 2, 2022 at 2:57 PM James Almer <jamr...@gmail.com> wrote:

On 2/17/2022 2:51 AM, Vignesh Venkatasubramanian wrote:
Add a parameter to omit seq header when generating the av1C atom.

For now, this does not change any behavior. This will be used by a
follow-up patch to add AVIF support.

Signed-off-by: Vignesh Venkatasubramanian <vigne...@google.com>
---
   libavformat/av1.c         | 7 +++++--
   libavformat/av1.h         | 4 +++-
   libavformat/matroskaenc.c | 4 ++--
   libavformat/movenc.c      | 2 +-
   4 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/libavformat/av1.c b/libavformat/av1.c
index 1fcfac2356..95ca7cc47f 100644
--- a/libavformat/av1.c
+++ b/libavformat/av1.c
@@ -361,7 +361,8 @@ int ff_av1_parse_seq_header(AV1SequenceParameters *seq, 
const uint8_t *buf, int
       return AVERROR_INVALIDDATA;
   }

-int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size)
+int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size,
+                       int write_seq_header)
   {
       AVIOContext *meta_pb;
       AV1SequenceParameters seq_params;
@@ -451,7 +452,9 @@ int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, 
int size)
       flush_put_bits(&pbc);

       avio_write(pb, header, sizeof(header));
-    avio_write(pb, seq, seq_size);
+    if (write_seq_header) {
+        avio_write(pb, seq, seq_size);
+    }

       meta_size = avio_get_dyn_buf(meta_pb, &meta);
       if (meta_size)
diff --git a/libavformat/av1.h b/libavformat/av1.h
index f57dabe986..a393fbb78f 100644
--- a/libavformat/av1.h
+++ b/libavformat/av1.h
@@ -96,9 +96,11 @@ int ff_av1_parse_seq_header(AV1SequenceParameters *seq, 
const uint8_t *buf, int
    * @param pb pointer to the AVIOContext where the av1C box shall be written
    * @param buf input data buffer
    * @param size size in bytes of the input data buffer
+ * @param write_seq_header If 1, Sequence Header OBU will be written inside the
+ *           av1C box. Otherwise, Sequence Header OBU will be omitted.
    *
    * @return >= 0 in case of success, a negative AVERROR code in case of 
failure
    */
-int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size);
+int ff_isom_write_av1c(AVIOContext *pb, const uint8_t *buf, int size, int 
write_seq_header);

   #endif /* AVFORMAT_AV1_H */
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 38d9485288..5061961283 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1087,7 +1087,7 @@ static int mkv_write_native_codecprivate(AVFormatContext 
*s, AVIOContext *pb,
       case AV_CODEC_ID_AV1:
           if (par->extradata_size)
               return ff_isom_write_av1c(dyn_cp, par->extradata,
-                                      par->extradata_size);
+                                      par->extradata_size, 1);
           else
               put_ebml_void(pb, 4 + 3);
           break;
@@ -2663,7 +2663,7 @@ static int mkv_check_new_extra_data(AVFormatContext *s, 
const AVPacket *pkt)
               ret = avio_open_dyn_buf(&dyn_cp);
               if (ret < 0)
                   return ret;
-            ff_isom_write_av1c(dyn_cp, side_data, side_data_size);
+            ff_isom_write_av1c(dyn_cp, side_data, side_data_size, 1);
               codecpriv_size = avio_get_dyn_buf(dyn_cp, &codecpriv);
               if ((ret = dyn_cp->error) < 0 ||
                   !codecpriv_size && (ret = AVERROR_INVALIDDATA)) {
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 4c868919ae..1a746a67fd 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -1303,7 +1303,7 @@ static int mov_write_av1c_tag(AVIOContext *pb, MOVTrack 
*track)

       avio_wb32(pb, 0);
       ffio_wfourcc(pb, "av1C");
-    ff_isom_write_av1c(pb, track->vos_data, track->vos_len);
+    ff_isom_write_av1c(pb, track->vos_data, track->vos_len, 1);
       return update_size(pb, pos);
   }


This patch no longer applies.

I have generated a new patch after sync'ing to the latest master. I
did not notice any conflicts. Can you please check if the updated
patch applies?

The new one does, yes. Thanks.


_______________________________________________
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".

Reply via email to