On 3/2/2024 5:51 AM, zhupengfei via ffmpeg-devel wrote:
@@ -1100,8 +1262,17 @@ retry:
              video_codec_id = avio_rb32(s->pb);
              size -= 4;
          }
-        if ((flags & FLV_VIDEO_FRAMETYPE_MASK) == FLV_FRAME_VIDEO_INFO_CMD)
+
+        if (enhanced_flv && stream_type == FLV_STREAM_TYPE_VIDEO && (flags & 
FLV_VIDEO_FRAMETYPE_MASK) == FLV_FRAME_VIDEO_INFO_CMD) {
+            type = flags & 0x0F;
+            if (type == PacketTypeMetadata) {

warning: comparison between 'enum FlvTagType' and 'enum <anonymous>' [-Wenum-compare]

I changed it locally to use a new packet_type variable in this scope.

Will apply the set soon if no one objects.

+                int ret = flv_parse_video_color_info(s, st, next);
+                av_log(s, AV_LOG_DEBUG, "enhanced flv parse metadata ret %d and 
skip\n", ret);
+            }
+            goto skip;
+        } else if ((flags & FLV_VIDEO_FRAMETYPE_MASK) == 
FLV_FRAME_VIDEO_INFO_CMD) {
              goto skip;
+        }
      } else if (type == FLV_TAG_TYPE_META) {
          stream_type=FLV_STREAM_TYPE_SUBTITLE;
          if (size > 13 + 1 + 4) { // Header-type metadata stuff
@@ -1287,6 +1458,11 @@ retry_duration:
              goto leave;
          }
+ if (enhanced_flv && stream_type == FLV_STREAM_TYPE_VIDEO && flv->meta_color_info_flag) {
+            flv_update_video_color_info(s, st); // update av packet side data
+            flv->meta_color_info_flag = 0;
+        }
+
          if (st->codecpar->codec_id == AV_CODEC_ID_H264 || 
st->codecpar->codec_id == AV_CODEC_ID_MPEG4 ||
              (st->codecpar->codec_id == AV_CODEC_ID_HEVC && type == 
PacketTypeCodedFrames)) {
              // sign extension
_______________________________________________
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