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