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
|
|
| 286 | 286 | static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) { |
| 287 | 287 | // Clear out the CONSTRAINED & INTRA flags which are strict subsets of the |
| 288 | 288 | // 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; |
| 291 | 291 | switch (profile) { |
| 292 | | case FF_PROFILE_H264_BASELINE: |
| | 292 | case AV_PROFILE_H264_BASELINE: |
| 293 | 293 | return H264PROFILE_BASELINE; |
| 294 | | case FF_PROFILE_H264_MAIN: |
| | 294 | case AV_PROFILE_H264_MAIN: |
| 295 | 295 | return H264PROFILE_MAIN; |
| 296 | | case FF_PROFILE_H264_EXTENDED: |
| | 296 | case AV_PROFILE_H264_EXTENDED: |
| 297 | 297 | return H264PROFILE_EXTENDED; |
| 298 | | case FF_PROFILE_H264_HIGH: |
| | 298 | case AV_PROFILE_H264_HIGH: |
| 299 | 299 | return H264PROFILE_HIGH; |
| 300 | | case FF_PROFILE_H264_HIGH_10: |
| | 300 | case AV_PROFILE_H264_HIGH_10: |
| 301 | 301 | return H264PROFILE_HIGH10PROFILE; |
| 302 | | case FF_PROFILE_H264_HIGH_422: |
| | 302 | case AV_PROFILE_H264_HIGH_422: |
| 303 | 303 | return H264PROFILE_HIGH422PROFILE; |
| 304 | | case FF_PROFILE_H264_HIGH_444_PREDICTIVE: |
| | 304 | case AV_PROFILE_H264_HIGH_444_PREDICTIVE: |
| 305 | 305 | return H264PROFILE_HIGH444PREDICTIVEPROFILE; |
| 306 | 306 | default: |
| 307 | 307 | DVLOG(1) << "Unknown profile id: " << profile; |
| … |
… |
|
| 312 | 312 | static int VideoCodecProfileToProfileID(VideoCodecProfile profile) { |
| 313 | 313 | switch (profile) { |
| 314 | 314 | case H264PROFILE_BASELINE: |
| 315 | | return FF_PROFILE_H264_BASELINE; |
| | 315 | return AV_PROFILE_H264_BASELINE; |
| 316 | 316 | case H264PROFILE_MAIN: |
| 317 | | return FF_PROFILE_H264_MAIN; |
| | 317 | return AV_PROFILE_H264_MAIN; |
| 318 | 318 | case H264PROFILE_EXTENDED: |
| 319 | | return FF_PROFILE_H264_EXTENDED; |
| | 319 | return AV_PROFILE_H264_EXTENDED; |
| 320 | 320 | case H264PROFILE_HIGH: |
| 321 | | return FF_PROFILE_H264_HIGH; |
| | 321 | return AV_PROFILE_H264_HIGH; |
| 322 | 322 | case H264PROFILE_HIGH10PROFILE: |
| 323 | | return FF_PROFILE_H264_HIGH_10; |
| | 323 | return AV_PROFILE_H264_HIGH_10; |
| 324 | 324 | case H264PROFILE_HIGH422PROFILE: |
| 325 | | return FF_PROFILE_H264_HIGH_422; |
| | 325 | return AV_PROFILE_H264_HIGH_422; |
| 326 | 326 | case H264PROFILE_HIGH444PREDICTIVEPROFILE: |
| 327 | | return FF_PROFILE_H264_HIGH_444_PREDICTIVE; |
| | 327 | return AV_PROFILE_H264_HIGH_444_PREDICTIVE; |
| 328 | 328 | default: |
| 329 | 329 | DVLOG(1) << "Unknown VideoCodecProfile: " << profile; |
| 330 | 330 | } |
| 331 | | return FF_PROFILE_UNKNOWN; |
| | 331 | return AV_PROFILE_UNKNOWN; |
| 332 | 332 | } |
| 333 | 333 | |
| 334 | 334 | SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format, |
| … |
… |
|
| 479 | 479 | // TODO(dalecurtis): Just use the profile from the codec context if ffmpeg |
| 480 | 480 | // ever starts supporting xHE-AAC. |
| 481 | 481 | // 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 || |
| 483 | 483 | codec_context->profile == mp4::AAC::kXHeAAcType - 1) { |
| 484 | 484 | // Errors aren't fatal here, so just drop any MediaLog messages. |
| 485 | 485 | NullMediaLog media_log; |
| … |
… |
|
| 631 | 631 | int hevc_profile = -1; |
| 632 | 632 | // We need to parse extradata each time, because we won't add ffmpeg |
| 633 | 633 | // 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 |
| 635 | 635 | if (codec_context->extradata && codec_context->extradata_size) { |
| 636 | 636 | mp4::HEVCDecoderConfigurationRecord hevc_config; |
| 637 | 637 | if (hevc_config.Parse(codec_context->extradata, |
| … |
… |
|
| 701 | 701 | break; |
| 702 | 702 | case VideoCodec::kVP9: |
| 703 | 703 | switch (codec_context->profile) { |
| 704 | | case FF_PROFILE_VP9_0: |
| | 704 | case AV_PROFILE_VP9_0: |
| 705 | 705 | profile = VP9PROFILE_PROFILE0; |
| 706 | 706 | break; |
| 707 | | case FF_PROFILE_VP9_1: |
| | 707 | case AV_PROFILE_VP9_1: |
| 708 | 708 | profile = VP9PROFILE_PROFILE1; |
| 709 | 709 | break; |
| 710 | | case FF_PROFILE_VP9_2: |
| | 710 | case AV_PROFILE_VP9_2: |
| 711 | 711 | profile = VP9PROFILE_PROFILE2; |
| 712 | 712 | break; |
| 713 | | case FF_PROFILE_VP9_3: |
| | 713 | case AV_PROFILE_VP9_3: |
| 714 | 714 | profile = VP9PROFILE_PROFILE3; |
| 715 | 715 | break; |
| 716 | 716 | default: |
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
|
|
| 68 | 68 | hdr[1] |= 1; |
| 69 | 69 | |
| 70 | 70 | switch (audio_profile) { |
| 71 | | case FF_PROFILE_AAC_MAIN: |
| | 71 | case AV_PROFILE_AAC_MAIN: |
| 72 | 72 | 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: |
| 76 | 76 | hdr[2] |= (1 << 6); |
| 77 | 77 | break; |
| 78 | | case FF_PROFILE_AAC_SSR: |
| | 78 | case AV_PROFILE_AAC_SSR: |
| 79 | 79 | hdr[2] |= (2 << 6); |
| 80 | 80 | break; |
| 81 | | case FF_PROFILE_AAC_LTP: |
| | 81 | case AV_PROFILE_AAC_LTP: |
| 82 | 82 | hdr[2] |= (3 << 6); |
| 83 | 83 | break; |
| 84 | 84 | default: |