Opened 6 years ago

Closed 6 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: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


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 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/] 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

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 by Ronald S. Bultje, 6 years ago

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

comment:2 by Carl Eugen Hoyos, 6 years ago

Blocked By: codecpar regression
Component: undeterminedavcodec
Priority: normalimportant

comment:3 by Hendrik, 6 years ago

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 by Michael Niedermayer, 6 years ago

Blocked By: codecpar regression
Keywords: codecpar regression added

moving keywords into keywords section

comment:5 by Michael Niedermayer, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.