Rico Tzschichholz, thank you very much, you are absolutely correct. There was 
OpenCV 3.3 installed on my system, it remained after update from 16.04 to 18.04 
with all its 16.04 dependencies.
I removed OpenCV 3.3 and everything got fixed.
Thanks a lot for help.
The issue is fixed and may be closed.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to x264 in Ubuntu.
https://bugs.launchpad.net/bugs/1906091

Title:
  libx264-148 libx264-152 conflict segmentation fault SIGSEGV

Status in x264 package in Ubuntu:
  New

Bug description:
  In my app I have segfault due to conflict of libx264-148 vs libx264-152.
  I use gstreamer and libopencv_videoio in my project.
  System is Ubuntu 18.04.5

  The problem is that versions of libx264 get mixed due to implicit
  linking.

  Libraries are linked like this:
  gstreamer -> x264enc -> libx264-152
  libopencv_videoio -> libavcodec-ffmpeg.so.56 -> libx264-148

  Both opencv-based code and gstreamer-based code works well if used
  separately.

  At the top of backtrace I see:
  Thread 13 (Thread 0x7f28e2066700 (LWP 26012)):
  #0  0x00007f290181c853 in x264_add8x8_idct_avx2.skip_prologue () at 
/usr/lib/x86_64-linux-gnu/libx264.so.152                 //!!!! 152
  #1  0x00007f2927a93f55 in x264_nal_encode () at 
/usr/lib/x86_64-linux-gnu/libx264.so.148 //!!!! 148
  #2  0x00007f2927af866c in  () at /usr/lib/x86_64-linux-gnu/libx264.so.148
  #3  0x00007f2927b0143b in x264_encoder_headers () at 
/usr/lib/x86_64-linux-gnu/libx264.so.148

  If I use objdump I can find x264_add8x8_idct_avx2.skip_prologue in
  both libx264-148 and libx264-152

  
  Here is example code which fails (C++ needed):

  int main (int argc, char *argv[])
  {
    App *app = &s_app;
    GError *error = NULL;
    GstBus *bus;
    GstCaps *caps;

    gst_init (&argc, &argv);
    
    auto cap = cv::VideoCapture("videoplayback.mp4");
    cv::Mat f;
    cap.read(f);
    cv::imshow("f", f);

    GST_DEBUG_CATEGORY_INIT (appsrc_pipeline_debug, "appsrc-pipeline", 0,
        "appsrc pipeline example");

    app->loop = g_main_loop_new (NULL, TRUE);
    app->timer = g_timer_new();

    app->pipeline = gst_parse_launch(R"(filesrc
  location=videoplayback.mp4 ! decodebin ! videoconvert ! x264enc
  byte-stream=true                 threads=1
  tune=zerolatency                 bitrate=4000000                 key-
  int-max=50                 option-string="force-cfr=1"         !
  video/x-h264,profile=baseline,stream-format="byte-stream"         !
  h264parse         ! mpegtsmux         ! hlssink
  location="/tmp/data%06d.ts"                 max-files=100
  playlist-length=10                 playlist-location="/tmp/kek"
  target-duration=10                 playlist-root=".")", NULL);

    g_assert (app->pipeline);

    bus = gst_pipeline_get_bus (GST_PIPELINE (app->pipeline));
    g_assert(bus);

    gst_bus_add_watch (bus, (GstBusFunc) bus_message, app);

    caps = gst_caps_new_simple ("video/x-raw-rgb",
      "bpp",G_TYPE_INT,8,
      "depth",G_TYPE_INT,8,
       "width", G_TYPE_INT, 640,
       "height", G_TYPE_INT, 480,
       NULL);
    gst_element_set_state (app->pipeline, GST_STATE_PLAYING);
    
    g_main_loop_run (app->loop);

    GST_DEBUG ("stopping");

    gst_element_set_state (app->pipeline, GST_STATE_NULL);
    
    gst_object_unref (bus);
    g_main_loop_unref (app->loop);

    return 0;
  }


  
  How can I solve this? PLease help!
  --- 
  ProblemType: Bug
  ApportVersion: 2.20.9-0ubuntu7.18
  Architecture: amd64
  CurrentDesktop: XFCE
  DistroRelease: Ubuntu 18.04
  InstallationDate: Installed on 2016-05-07 (1667 days ago)
  InstallationMedia: Xubuntu 16.04 LTS "Xenial Xerus" - Release amd64 
(20160420.1)
  NonfreeKernelModules: nvidia_modeset nvidia
  Package: x264 2:0.152.2854+gite9a5903-2
  PackageArchitecture: amd64
  ProcVersionSignature: Ubuntu 4.15.0-118.119-generic 4.15.18
  Tags: bionic third-party-packages
  Uname: Linux 4.15.0-118-generic x86_64
  UpgradeStatus: Upgraded to bionic on 2019-12-28 (338 days ago)
  UserGroups: adm cdrom dialout dip docker lpadmin plugdev sambashare sudo
  _MarkForUpload: True

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/x264/+bug/1906091/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to