af33895
diff -Nrup mozilla-OLD/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp mozilla/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp
af33895
--- mozilla-OLD/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp	2023-02-26 00:24:08.000000000 +0300
af33895
+++ mozilla/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp	2023-07-27 19:24:41.017935187 +0300
af33895
@@ -63,6 +63,7 @@ FFmpegLibWrapper::Link()
af33895
     AV_FUNC_57 = 1 << 4,
af33895
     AV_FUNC_58 = 1 << 5,
af33895
     AV_FUNC_59 = 1 << 6,
af33895
+    AV_FUNC_60 = 1 << 7,
af33895
     AV_FUNC_AVUTIL_53 = AV_FUNC_53 | AV_FUNC_AVUTIL_MASK,
af33895
     AV_FUNC_AVUTIL_54 = AV_FUNC_54 | AV_FUNC_AVUTIL_MASK,
af33895
     AV_FUNC_AVUTIL_55 = AV_FUNC_55 | AV_FUNC_AVUTIL_MASK,
af33895
@@ -70,8 +71,9 @@ FFmpegLibWrapper::Link()
af33895
     AV_FUNC_AVUTIL_57 = AV_FUNC_57 | AV_FUNC_AVUTIL_MASK,
af33895
     AV_FUNC_AVUTIL_58 = AV_FUNC_58 | AV_FUNC_AVUTIL_MASK,
af33895
     AV_FUNC_AVUTIL_59 = AV_FUNC_59 | AV_FUNC_AVUTIL_MASK,
af33895
+    AV_FUNC_AVUTIL_60 = AV_FUNC_60 | AV_FUNC_AVUTIL_MASK,
af33895
     AV_FUNC_AVCODEC_ALL = AV_FUNC_53 | AV_FUNC_54 | AV_FUNC_55 | AV_FUNC_56 |
af33895
-                          AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59,
af33895
+                          AV_FUNC_57 | AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60,
af33895
     AV_FUNC_AVUTIL_ALL = AV_FUNC_AVCODEC_ALL | AV_FUNC_AVUTIL_MASK
af33895
   };
af33895
 
af33895
@@ -97,8 +99,11 @@ FFmpegLibWrapper::Link()
af33895
     case 59:
af33895
       version = AV_FUNC_59;
af33895
       break;
af33895
+    case 60:
af33895
+      version = AV_FUNC_60;
af33895
+      break;
af33895
     default:
af33895
-      FFMPEG_LOG("Unknown avcodec version");
af33895
+      FFMPEG_LOG("Unknown avcodec version: %d", macro);
af33895
       Unlink();
af33895
       return isFFMpeg
af33895
              ? ((macro > 57)
af33895
@@ -146,8 +151,8 @@ FFmpegLibWrapper::Link()
af33895
   AV_FUNC(avcodec_alloc_frame, (AV_FUNC_53 | AV_FUNC_54))
af33895
   AV_FUNC(avcodec_get_frame_defaults, (AV_FUNC_53 | AV_FUNC_54))
af33895
   AV_FUNC(avcodec_free_frame, AV_FUNC_54)
af33895
-  AV_FUNC(avcodec_send_packet, AV_FUNC_58 | AV_FUNC_59)
af33895
-  AV_FUNC(avcodec_receive_frame, AV_FUNC_58 | AV_FUNC_59)
af33895
+  AV_FUNC(avcodec_send_packet, AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60)
af33895
+  AV_FUNC(avcodec_receive_frame, AV_FUNC_58 | AV_FUNC_59 | AV_FUNC_60)
af33895
   AV_FUNC_OPTION(av_rdft_init, AV_FUNC_AVCODEC_ALL)
af33895
   AV_FUNC_OPTION(av_rdft_calc, AV_FUNC_AVCODEC_ALL)
af33895
   AV_FUNC_OPTION(av_rdft_end, AV_FUNC_AVCODEC_ALL)
af33895
@@ -156,13 +161,13 @@ FFmpegLibWrapper::Link()
af33895
   AV_FUNC(av_freep, AV_FUNC_AVUTIL_ALL)
af33895
   AV_FUNC(av_frame_alloc,
af33895
           (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
af33895
-           AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59))
af33895
+           AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60))
af33895
   AV_FUNC(av_frame_free,
af33895
           (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
af33895
-           AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59))
af33895
+           AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60))
af33895
   AV_FUNC(av_frame_unref,
af33895
           (AV_FUNC_AVUTIL_55 | AV_FUNC_AVUTIL_56 | AV_FUNC_AVUTIL_57 |
af33895
-           AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59))
af33895
+           AV_FUNC_AVUTIL_58 | AV_FUNC_AVUTIL_59 | AV_FUNC_AVUTIL_60))
af33895
   AV_FUNC_OPTION(av_frame_get_colorspace, AV_FUNC_AVUTIL_ALL)
af33895
 #undef AV_FUNC
af33895
 #undef AV_FUNC_OPTION
af33895
diff -Nrup mozilla-OLD/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp mozilla/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
af33895
--- mozilla-OLD/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp	2023-02-26 00:24:08.000000000 +0300
af33895
+++ mozilla/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp	2023-07-27 19:29:33.862410516 +0300
af33895
@@ -26,6 +26,7 @@ static FFmpegLibWrapper sLibAV;
af33895
 
af33895
 static const char* sLibs[] = {
af33895
 #if defined(XP_DARWIN)
af33895
+  "libavcodec.60.dylib",
af33895
   "libavcodec.59.dylib",
af33895
   "libavcodec.58.dylib",
af33895
   "libavcodec.57.dylib",
af33895
@@ -34,8 +35,10 @@ static const char* sLibs[] = {
af33895
   "libavcodec.54.dylib",
af33895
   "libavcodec.53.dylib",
af33895
 #else
af33895
+  "libavcodec.so.60",
af33895
   "libavcodec.so.59",
af33895
   "libavcodec.so.58",
af33895
+  "libavcodec-ffmpeg.so.60",
af33895
   "libavcodec-ffmpeg.so.59",
af33895
   "libavcodec-ffmpeg.so.58",
af33895
   "libavcodec-ffmpeg.so.57",
af33895
@@ -144,6 +147,9 @@ FFmpegRuntimeLinker::CreateDecoderModule
af33895
     case 59:
af33895
       module = FFmpegDecoderModule<59>::Create(&sLibAV);
af33895
       break;
af33895
+    case 60:
af33895
+      module = FFmpegDecoderModule<60>::Create(&sLibAV);
af33895
+      break;
af33895
     default: module = nullptr;
af33895
   }
af33895
   return module.forget();
af33895
diff -Nrup mozilla-OLD/dom/media/platforms/ffmpeg/moz.build mozilla/dom/media/platforms/ffmpeg/moz.build
af33895
--- mozilla-OLD/dom/media/platforms/ffmpeg/moz.build	2023-02-26 00:24:08.000000000 +0300
af33895
+++ mozilla/dom/media/platforms/ffmpeg/moz.build	2023-07-27 19:30:03.931253970 +0300
af33895
@@ -15,6 +15,7 @@ DIRS += [
af33895
     'ffmpeg57',
af33895
     'ffmpeg58',
af33895
     "ffmpeg59",
af33895
+    "ffmpeg60",
af33895
 ]
af33895
 
af33895
 UNIFIED_SOURCES += [