Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation Fault on Ubuntu 13.10 #50

Closed
aperson opened this issue Oct 17, 2013 · 6 comments
Closed

Segmentation Fault on Ubuntu 13.10 #50

aperson opened this issue Oct 17, 2013 · 6 comments
Labels

Comments

@aperson
Copy link

aperson commented Oct 17, 2013

zach@blue:~$ simplescreenrecorder 
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated.
==================== Starting SSR ====================
SimpleScreenRecorder: 0.1.1
Qt: header 4.8.4, lib 4.8.4
libavformat: header 53.21.1, lib 53.21.1
libavcodec: header 53.35.0, lib 53.35.0
libavutil: header 51.22.1, lib 51.22.1
libswscale: header 2.1.0, lib 2.1.2
[DetectCPUFeatures] CPU features: mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 avx
[FastScaler::FastScaler] BGRA to YUV420 converter: SSSE3
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No space left on device
QFileSystemWatcher: failed to add paths: /home/zach/.config/ibus/bus

(simplescreenrecorder:12889): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed

(simplescreenrecorder:12889): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed
[PageRecord::PageStart] Starting page ...
[PageRecord::PageStart] Started page.
[PageRecord::RecordStart] Starting recording ...
[Muxer::Init] Using format flv (FLV format).
[BaseEncoder::CreateCodec] Using codec libx264 (libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10).
[libx264 @ 0x1982ac0] lookaheadless mb-tree requires intra refresh or infinite keyint
[libx264 @ 0x1982ac0] using SAR=1/1
Segmentation fault (core dumped)

I am using the 0.1.1-1~ppa1~saucy1 version from the PPA. I am also on amd64 with the Nvidia 304.88 proprietary driver.

@MaartenBaert
Copy link
Owner

Seems to be a bug in the version of libav that Ubuntu is using. Any attempt to use x264 fails, not just in SSR, but also in the official command-line tool (avconv). I can't fix that.

The bug report is here:
https://bugs.launchpad.net/ubuntu/+source/x264/+bug/1241772
The issue has been fixed upstream (in february, actually) but the fix isn't in the version Ubuntu uses. You can vote on the bug to let them know it affects multiple users.

There's no way to work around this, unless you compile x264 from source. You can still use VP8 (it is slower though).

@3vi1
Copy link

3vi1 commented Oct 20, 2013

I've marked the Ubuntu bug as affecting me, and will encourage anyone else I find to do the same.

I've tried working around the bug by compiling libx264 from source, but the versioning of libx264.so is... odd... compared to what I'm used to seeing.

Compiling the current git produces libx264.so.138, but it appears that something in ssr or libavcodec is specifically looking for version 123. Symlinking the new dll produces a different crash when it's used: "simplescreenrecorder: symbol lookup error: /usr/lib/x86_64-linux-gnu/libavcodec.so.53: undefined symbol: x264_encoder_open_123"

I used 'apt-get source' to get the source code for v123, but it of course had the same bug when I compiled it and tried to use it.

I looked at the snapshots at ftp://ftp.videolan.org/pub/x264/snapshots/, but the ones from February (when you indicated it was fixed) are version 129 and later - so I assume they would not work either due to the mangling referring specifically to 123..

I attempted to hackishly override the API version in x264.h, but I guess there have been significant API changes between 138 and 123, because the resulting .so file also segfaults.

I'm guessing I have to do more than build x264? Maybe build libavcodec from source over the current version of x264? It'll probably make more sense to me after I get some sleep.

@3vi1
Copy link

3vi1 commented Oct 20, 2013

NEVERmind... duh... it came to my sleep addled mind as soon as I posted: All I needed to do is compile the Ubuntu source (123) version with --extra-cflags=-fno-aggressive-loop-optimizations.

I did that, and it works fine!

So, as a workaround, Ubuntu users can do something along the lines of:

  1. sudo apt-get build-dep libx264-123
  2. sudo apt-get install yasm
  3. apt-get source libx264-123
  4. cd x264-0.123.2189+git35cf912
  5. ./configure --enable-static --enable-shared --extra-cflags=-fno-aggressive-loop-optimizations
  6. make
  7. sudo cp libx264.so.123 /usr/lib/x86_64-linux-gnu/
    (^ I'm on 64-bit)

@luvlinuxos
Copy link

Hi 3vi1,

Great work around!!! Thanks!!! Now I have to get my video driver working again!!!

Be Blessed!!!

Elbennit

LuvLinuxOS

@MaartenBaert
Copy link
Owner

I've uploaded a patched x264 package to my PPA (with the backported upstream patch instead of the workaround). This appears to fix it.

@luvlinuxos
Copy link

Maarten,

Thanks for following up! I right now the work around is doing great!!! I
have relearned a valuable lesson in this upgrade. One don't rush to
upgrade and two if it is not broken!!! Again thanks for your time and
effort!!!

Be Blessed!!!

Elbennit
[image: Inline image 1] http://luvlinuxos.blogspot.com

On Sun, Oct 20, 2013 at 12:49 PM, MaartenBaert notifications@github.comwrote:

I've uploaded a patched x264 package to my PPA (with the backported
upstream patch instead of the workaround). This appears to fix it.


Reply to this email directly or view it on GitHubhttps://github.com//issues/50#issuecomment-26676860
.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants