Ticket #22011: qtwebengine-6.9.1-ffmpeg_8.0-1.patch

File qtwebengine-6.9.1-ffmpeg_8.0-1.patch, 5.3 KB (added by martyj19, 13 months ago)

Adjust qtwebengine for ffmpeg 8.0

  • src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc

    diff -Naur qtwebengine-6.9.1.orig/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc qtwebengine-6.9.1/src/3rdparty/chromium/media/ffmpeg/ffmpeg_common.cc
    old new  
    286286static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) {
    287287  // Clear out the CONSTRAINED & INTRA flags which are strict subsets of the
    288288  // corresponding profiles with which they're used.
    289   profile &= ~FF_PROFILE_H264_CONSTRAINED;
    290   profile &= ~FF_PROFILE_H264_INTRA;
     289  profile &= ~AV_PROFILE_H264_CONSTRAINED;
     290  profile &= ~AV_PROFILE_H264_INTRA;
    291291  switch (profile) {
    292     case FF_PROFILE_H264_BASELINE:
     292    case AV_PROFILE_H264_BASELINE:
    293293      return H264PROFILE_BASELINE;
    294     case FF_PROFILE_H264_MAIN:
     294    case AV_PROFILE_H264_MAIN:
    295295      return H264PROFILE_MAIN;
    296     case FF_PROFILE_H264_EXTENDED:
     296    case AV_PROFILE_H264_EXTENDED:
    297297      return H264PROFILE_EXTENDED;
    298     case FF_PROFILE_H264_HIGH:
     298    case AV_PROFILE_H264_HIGH:
    299299      return H264PROFILE_HIGH;
    300     case FF_PROFILE_H264_HIGH_10:
     300    case AV_PROFILE_H264_HIGH_10:
    301301      return H264PROFILE_HIGH10PROFILE;
    302     case FF_PROFILE_H264_HIGH_422:
     302    case AV_PROFILE_H264_HIGH_422:
    303303      return H264PROFILE_HIGH422PROFILE;
    304     case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
     304    case AV_PROFILE_H264_HIGH_444_PREDICTIVE:
    305305      return H264PROFILE_HIGH444PREDICTIVEPROFILE;
    306306    default:
    307307      DVLOG(1) << "Unknown profile id: " << profile;
    … …  
    312312static int VideoCodecProfileToProfileID(VideoCodecProfile profile) {
    313313  switch (profile) {
    314314    case H264PROFILE_BASELINE:
    315       return FF_PROFILE_H264_BASELINE;
     315      return AV_PROFILE_H264_BASELINE;
    316316    case H264PROFILE_MAIN:
    317       return FF_PROFILE_H264_MAIN;
     317      return AV_PROFILE_H264_MAIN;
    318318    case H264PROFILE_EXTENDED:
    319       return FF_PROFILE_H264_EXTENDED;
     319      return AV_PROFILE_H264_EXTENDED;
    320320    case H264PROFILE_HIGH:
    321       return FF_PROFILE_H264_HIGH;
     321      return AV_PROFILE_H264_HIGH;
    322322    case H264PROFILE_HIGH10PROFILE:
    323       return FF_PROFILE_H264_HIGH_10;
     323      return AV_PROFILE_H264_HIGH_10;
    324324    case H264PROFILE_HIGH422PROFILE:
    325       return FF_PROFILE_H264_HIGH_422;
     325      return AV_PROFILE_H264_HIGH_422;
    326326    case H264PROFILE_HIGH444PREDICTIVEPROFILE:
    327       return FF_PROFILE_H264_HIGH_444_PREDICTIVE;
     327      return AV_PROFILE_H264_HIGH_444_PREDICTIVE;
    328328    default:
    329329      DVLOG(1) << "Unknown VideoCodecProfile: " << profile;
    330330  }
    331   return FF_PROFILE_UNKNOWN;
     331  return AV_PROFILE_UNKNOWN;
    332332}
    333333
    334334SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format,
    … …  
    479479    // TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
    480480    // ever starts supporting xHE-AAC.
    481481    // FFmpeg provides the (defined_profile - 1) for AVCodecContext::profile
    482     if (codec_context->profile == FF_PROFILE_UNKNOWN ||
     482    if (codec_context->profile == AV_PROFILE_UNKNOWN ||
    483483        codec_context->profile == mp4::AAC::kXHeAAcType - 1) {
    484484      // Errors aren't fatal here, so just drop any MediaLog messages.
    485485      NullMediaLog media_log;
    … …  
    631631      int hevc_profile = -1;
    632632      // We need to parse extradata each time, because we won't add ffmpeg
    633633      // hevc decoder & parser to chromium and codec_context->profile
    634       // should always be FF_PROFILE_UNKNOWN (-99) here
     634      // should always be AV_PROFILE_UNKNOWN (-99) here
    635635      if (codec_context->extradata && codec_context->extradata_size) {
    636636        mp4::HEVCDecoderConfigurationRecord hevc_config;
    637637        if (hevc_config.Parse(codec_context->extradata,
    … …  
    701701      break;
    702702    case VideoCodec::kVP9:
    703703      switch (codec_context->profile) {
    704         case FF_PROFILE_VP9_0:
     704        case AV_PROFILE_VP9_0:
    705705          profile = VP9PROFILE_PROFILE0;
    706706          break;
    707         case FF_PROFILE_VP9_1:
     707        case AV_PROFILE_VP9_1:
    708708          profile = VP9PROFILE_PROFILE1;
    709709          break;
    710         case FF_PROFILE_VP9_2:
     710        case AV_PROFILE_VP9_2:
    711711          profile = VP9PROFILE_PROFILE2;
    712712          break;
    713         case FF_PROFILE_VP9_3:
     713        case AV_PROFILE_VP9_3:
    714714          profile = VP9PROFILE_PROFILE3;
    715715          break;
    716716        default:
  • src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc

    diff -Naur qtwebengine-6.9.1.orig/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc qtwebengine-6.9.1/src/3rdparty/chromium/media/filters/ffmpeg_aac_bitstream_converter.cc
    old new  
    6868  hdr[1] |= 1;
    6969
    7070  switch (audio_profile) {
    71     case FF_PROFILE_AAC_MAIN:
     71    case AV_PROFILE_AAC_MAIN:
    7272      break;
    73     case FF_PROFILE_AAC_HE:
    74     case FF_PROFILE_AAC_HE_V2:
    75     case FF_PROFILE_AAC_LOW:
     73    case AV_PROFILE_AAC_HE:
     74    case AV_PROFILE_AAC_HE_V2:
     75    case AV_PROFILE_AAC_LOW:
    7676      hdr[2] |= (1 << 6);
    7777      break;
    78     case FF_PROFILE_AAC_SSR:
     78    case AV_PROFILE_AAC_SSR:
    7979      hdr[2] |= (2 << 6);
    8080      break;
    81     case FF_PROFILE_AAC_LTP:
     81    case AV_PROFILE_AAC_LTP:
    8282      hdr[2] |= (3 << 6);
    8383      break;
    8484    default: