Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 306921 - www-client/chromium: html5 videos/audio doesn't work
Summary: www-client/chromium: html5 videos/audio doesn't work
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Paweł Hajdan, Jr. (RETIRED)
URL:
Whiteboard:
Keywords:
: 314171 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-02-26 09:56 UTC by Carlos Augusto
Modified: 2010-04-15 05:57 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
fix ffmpeg branding so we can benefit from h264 internal codec (chromium-fix-ffmpeg-branding.patch,1.66 KB, patch)
2010-02-26 10:00 UTC, Carlos Augusto
Details | Diff
new ebuild for chromium (chromium-5.0.335.0-r1.ebuild,6.80 KB, text/plain)
2010-02-26 10:06 UTC, Carlos Augusto
Details
sanitize chromium-5.0.307.9 HTML5 handling (chromium-5.0.307.9.ebuild.diff,1.56 KB, patch)
2010-02-26 12:07 UTC, Doktor Notor
Details | Diff
ebuild fix (chromium-5.0.335.0.ebuild.diff,2.62 KB, patch)
2010-02-27 03:30 UTC, Carlos Augusto
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos Augusto 2010-02-26 09:56:52 UTC
When compiled with ffmpeg USE flag, chromium doesn't play videos. Also if I turn the ffmpeg flag off the ebuild doesn't honor it, -Duse_system_ffmpeg=1 is hardcoded

Reproducible: Always

Steps to Reproduce:
1.compile www-client/chrome
2.Try to open an html5 video (h264 or ogg)

Actual Results:  
Shows only the player controls, no video/audio, according to gdb a thread keep spawning everytime you click on play

Expected Results:  
Play the video/audio

After researching the forums I saw some people with the same problem but looks like no one managed to get chromium to play the videos. I created a patch and a new ebuild, it's fixed for me using these.

Portage 2.1.7.16 (default/linux/amd64/10.0, gcc-4.3.4, glibc-2.10.1-r1, 2.6.31-gentoo-r6 x86_64)
=================================================================
System uname: Linux-2.6.31-gentoo-r6-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9450_@_2.66GHz-with-gentoo-1.12.13
Timestamp of tree: Thu, 25 Feb 2010 22:45:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p35
dev-java/java-config: 2.1.10
dev-lang/python:     2.6.4
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.4-r3
sys-apps/baselayout: 1.12.13
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc:       4.3.4
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.30-r1
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=core2 -mtune=core2 -msse4.1 -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -pipe -march=core2 -mtune=core2 -msse4.1 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests ccache distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LDFLAGS="-Wl,-O1"
LINGUAS="en"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.samerica.gentoo.org/gentoo-portage"
USE="64bit X acl acpi alsa amd64 apm berkdb bzip2 cairo cdr cleartype cli consolekit cracklib crypt cups cxx dbus device-mapper directfb disk-partition dri dvd dvdr emerald extras faac faad fbcon ffmpeg flac fontconfig fortran gd gdbm git glitz gnome gpm gtk iconv ipv6 java jpeg kde mmx mmxext modules mp3 mp4 mudflap multilib multiuser ncurses nls nptl nptlonly ogg openal opengl openmp pam pango pcre perl png pppd pulseaudio python readline reflection sdl session speex spl sse sse2 sse3 ssl ssse3 svg sysfs tcpd theora threads truetype unicode v4l2 vorbis x264 xattr xcb xcomposite xorg xpm xv zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vmware nvidia fbdev vesa" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Carlos Augusto 2010-02-26 10:00:33 UTC
Created attachment 221275 [details, diff]
fix ffmpeg branding so we can benefit from h264 internal codec

should go into files directory for the ebuild, this is not a fix, is a hack to use the internal ffmpeg with h264 when compiling as chromium
Comment 2 Carlos Augusto 2010-02-26 10:06:28 UTC
Created attachment 221277 [details]
new ebuild for chromium

This is the new ebuild:
- applies the patch when we don't use ffmpeg;
- fix the hardcoded ffmpeg useflag 
- fix the internal ffmpeg include header to use the same codecs as Chrome
- when not using ffmpeg install the internal ffmpegsumo too

The default include header for the internal ffmpeg on Chromium has #define CONFIG_ZLIB 0 while on Chrome this value is 1. I opted to keep this value as 0
Comment 3 Doktor Notor 2010-02-26 11:05:11 UTC
Why was this flag even added? 


1/ There's no need for such patches once you depend on proper version of ffmpeg. Bug 293666 should be reopened and set to WONTFIX, proper dep set in the ebuild (hard one) and be done with it. Installing this bundled stuff is against general Gentoo policies as well, AFAICT, plus bad security-wise in any case. 

2/ chromium{,-bin} isn't stable anywhere, nor it should be (even the 5.x series has beta status upstream). Once you want it stabilized, you need to get proper ffmpeg version stabilized at the same moment, like with any other package out there in the tree.
Comment 4 Carlos Augusto 2010-02-26 11:19:39 UTC
> 1/ There's no need for such patches once you depend on proper version of
> ffmpeg. 
I am not using unstable ffmpeg... chromium doesn't need the unstable one to compile, the whole ffmpeg flag is really messy on the ebuild and if an unstable package needed another unstable one it should have been made that way on deps

> 2/ chromium{,-bin} isn't stable anywhere
I know that, I really don't see your point here

Comment 5 Doktor Notor 2010-02-26 11:26:59 UTC
(In reply to comment #4)
> I am not using unstable ffmpeg... chromium doesn't need the unstable one to
> compile, the whole ffmpeg flag is really messy on the ebuild and if an unstable
> package needed another unstable one it should have been made that way on deps

So don't use the HTML5 features in chromium. It clearly needs unstable ffmpeg for the HTML5 functionality, so that needs to be the dependency. The entire USE=ffmpeg is a misnomer, should be html5 instead. And, it *was* that way before bug referred to above was "fixed", which instead of fixing anything introduced yet another bug and breaks general policies wrt bundled junk.
Comment 6 Carlos Augusto 2010-02-26 11:49:22 UTC
I see what you meant with unstable ffmpeg now. Bug 293666 should really be set to WONTFIX and kept with unstable ffmpeg, it's damn pointless to compile it against stable ffmpeg as it won't work.

Still, with the ebuild modifications and the patch I attached it would be possible to compile chromium without having to compile the unstable ffmpeg
Comment 7 Doktor Notor 2010-02-26 12:07:35 UTC
Created attachment 221311 [details, diff]
sanitize chromium-5.0.307.9 HTML5 handling

(In reply to comment #6)
> Still, with the ebuild modifications and the patch I attached it would be
> possible to compile chromium without having to compile the unstable ffmpeg

According to Bug 293666 Comment #1 this should be RDEPEND only (only checked on runtime, kinda like plugin), so patch for ebuild attached accordingly. I didn't verify the above. If that fails, it simply needs to be a hard dependency, no flags, end of story.
Comment 8 Carlos Augusto 2010-02-27 03:30:17 UTC
Created attachment 221383 [details, diff]
ebuild fix

Fix ffmpeg version dependency so we can get html5 videos working (in case USE=ffmpeg)

make the use_system_ffmpeg verify for the USE flag (it wasn't an option)
don't create symlinks for libavcodec/util/format if we don't use the system ffmpeg
allow the ffmpeg internal library to use h264
added the internal library to the install package (USE=-ffmpeg)
Comment 9 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2010-03-03 18:07:08 UTC
Thanks for the comments. Here's the current state of things:

- I bumped the required version of ffmpeg like in your patches
- -Duse_system_ffmpeg=1 is only applied when USE="ffmpeg"
- added a "bindist" USE flag to make it more sane, please don't complain
- I'm not going to apply the patch changing the branding of the bundled ffmpeg, I'd rather make it work with the system ffmpeg

I'm going to do more testing and work on this. Thoughts and patches welcome, please be polite.
Comment 10 Carlos Augusto 2010-03-03 19:36:00 UTC
That's ok, bumping the ffmpeg version and adjusting the -Duse_system_ffmpeg will fix the issue.

I think you should also only apply the chromium-20100122-ubuntu-html5-video-mimetypes.patch if we specify USE=ffmpeg (that's why I added the branding patch). 

IMO it is kinda pointless to say that we support h.264 when we don't use system ffmpeg without branding patch.

As for testing, I have been running the regular one with a more recent ffmpeg and the only problem I noticed is with pulseaudio, everything else is running ok.
Comment 11 Doktor Notor 2010-03-04 10:01:58 UTC
Well, as noted above, should be something like

if ! use bindist && use ffmpeg; then
	# Allow use of MP3/MPEG-4 audio/video tags with our system ffmpeg
	epatch "${FILESDIR}"/${PN}-20100122-ubuntu-html5-video-mimetypes.patch
fi

Otherwise you claim you support MIME types that in fact won't be supported with USE="-ffmpeg". 

Also, I'd like to have the thing about ffmpeg clarified - is it actually checked in any way during the build or not? I really don't have time to dig into this huge thing.
Comment 12 Carlos Augusto 2010-03-04 10:09:07 UTC
I don't think it is, when you say use system ffmpeg looks like the compile script just create some stubs for internal ffmpeg and, only to make things easier, we have to link 3 libs to chromium dir or else we can't use the system ffmpeg
Comment 13 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2010-04-03 20:44:31 UTC
After today's change it should do everything correctly.
Comment 14 Markus Rathgeb 2010-04-06 18:58:14 UTC
On my ~x86 machine I cannot watch youtube videos with activated HTML5...

For informations of versions and use flags:

[ebuild   R   ] media-video/ffmpeg-0.5_p21602  USE="3dnow 3dnowext X alsa dirac encode faac faad gsm hardcoded-tables ieee1394 jpeg2k mmx mmxext mp3 network opencore-amr schroedinger sdl speex ssse3 theora threads v4l v4l2 vdpau vorbis x264 xvid zlib (-altivec) -bindist -cpudetection -custom-cflags -debug -doc -jack -oss -pic -test" VIDEO_CARDS="nvidia" 0 kB

[ebuild   R   ] www-client/chromium-5.0.366.2  USE="ffmpeg plugins-symlink -bindist" 0 kB
Comment 15 Andreas K. Hüttel archtester gentoo-dev 2010-04-09 21:41:03 UTC
*** Bug 314171 has been marked as a duplicate of this bug. ***
Comment 16 Markus Rathgeb 2010-04-10 09:39:40 UTC
With version 5.0.371.0 it is working now.

Thanks a lot.
Comment 17 Petr Gregor 2010-04-10 12:58:36 UTC
It still isn't working for me (~x86 gentoo). I synced and compiled today and it works with neither 9999 nor 5.0.371.0. I have 9999 ffmpeg. Is there some way to enable verbose messages in chromium to find out why?
Comment 18 Daniel Faucon 2010-04-10 13:41:52 UTC
What does not work ? Playing html5 media or only h264 ones ?

because right now I can only play *audio* ogg html5 medias, both video ogg and video h264 don't play with 5.0.371.0 and 9999, and it works with the -bin package. (at least the ogg ones)

Maybe it's the same problem that you have. Or maybe I'm the only one experiencing it.

you can test it with http://tinyogg.com and trying to convert youtube's videos, or convert them to "only ogg audio" to see if audio ogg medias can be played.
Comment 19 Petr Gregor 2010-04-10 14:28:17 UTC
I have tried tinyogg.com. Ogg audio plays but with a lot of stucking like he-llo I-am Bri-an. I guess you get the idea... (happens even from localhost) Ogg video doesn't even start. I can see controls but nothing more.
Comment 20 Daniel Faucon 2010-04-10 14:38:30 UTC
Ok, so we have definetively the same problem.

As I described in bug 314171 my useflags should be OK.
I have no idea why it can play ogg audio content and why it behaves like it cannot find video format codecs…

But it looks like a different bug from this one (which i abount h264 support), and bug 314171 should not be marked as duplicate of this bug as it's another bug confirmed by someone else.

We should reopen bug 314171, and leave this one as RESOLVED FIXED.
Comment 21 Petr Gregor 2010-04-10 14:50:58 UTC
I think this bug covers both ogg and h264. In any case I cannot play either.
Comment 22 Daniel Faucon 2010-04-14 14:58:54 UTC
looks like is has been fixed in bug 314977
It was a dependency problem, ffmpeg needs to be compiles with +threads flag
Comment 23 Petr Gregor 2010-04-15 05:57:34 UTC
It works now, thank you.