Opened 3 years ago

Closed 3 years ago

#5451 closed defect (fixed)

Chromium: VP8 WebM broken after "replace AVStream.codec with AVStream.codecpar"

Reported by: misc Owned by:
Priority: important Component: avcodec
Version: git-master Keywords: codecpar regression
Cc: derek.buitenhuis@gmail.com Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Since "lavf: replace AVStream.codec with AVStream.codecpar" resp. 6f69f7a (bisected) VP8 WebM video won't play anymore on Chromium, instead showing on chrome:media-internals eg. (with 849e55e)

00:00:00 00 pipeline_state kCreated
00:00:00 00 event WEBMEDIAPLAYER_CREATED
00:00:00 00 url file:///home/misc/vp8.webm
00:00:00 08 total_bytes 3081089
00:00:00 08 streaming false
00:00:00 08 single_origin true
00:00:00 08 passed_cors_access_check false
00:00:00 08 range_header_supported true
00:00:00 08 pipeline_state kInitDemuxer
00:00:00 10 error FFmpegDemuxer: failed creating video stream
00:00:00 10 info FFmpegDemuxer: skipping invalid or unsupported video track
00:00:00 10 error FFmpegDemuxer: no supported streams
00:00:00 10 pipeline_state kStopping
00:00:00 10 pipeline_state kStopped
00:00:00 10 pipeline_error demuxer: no supported streams

resp. on console

[278:278:0418/190655:ERROR:render_media_log.cc(23)] MediaEvent?: PIPELINE_ERROR demuxer: no supported streams

VP9 WebMs? play fine, however. Audio still seems to play fine with either format.

ffmpeg was compiled with --enable-libvpx, libvpx itself is at its most recent git 9faa029.

Chromium was (without effect) recompiled for good measure, although that doesn't appear necessary. It is (of course) set to use the system's ffmpeg, which requires compiling with
https://raw.githubusercontent.com/gentoo/gentoo/master/www-client/chromium/files/chromium-system-ffmpeg-r2.patch

I know this probably falls under NOTOURBUG, but I still thought it worth reporting seeing that it only appears with VP8.

Change History (5)

comment:1 Changed 3 years ago by rbultje

I believe Chromium (or Chrome) uses libvpx for VP9 decoding, that may be why vp9 works.

comment:2 Changed 3 years ago by cehoyos

  • Blocked By set to codecpar regression
  • Component changed from undetermined to avcodec
  • Priority changed from normal to important

comment:3 Changed 3 years ago by heleppkes

Looks like this happens because Chromium relies on coded_width/height being set, which is technically wrong, and a piece of information that AVCodecParameters will also no longer provide.

Nevertheless, we could export coded_width/height again in the deprecated compat code to avoid apps breaking from this, as long as st->codec is not removed yet.

comment:4 Changed 3 years ago by michael

  • Blocked By codecpar regression deleted
  • Keywords codecpar regression added

moving keywords into keywords section

comment:5 Changed 3 years ago by michael

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.