Skip to content

Conversation

@gfto
Copy link

@gfto gfto commented Oct 28, 2013

Somehow the crash on exit that I've fixed long time ago is again here.

Also included are three commits related to compiler warnings and also two commits that remove unused (possibly for now) functions.

With these fixes obe-rt builds without warnings on my system (excluding deprecated warnings from libav related to av_reverse and {get,reget,release}_buffer functions /those guys remove APIs just for the sake of it.../).

Georgi Chorbadzhiyski added 6 commits October 28, 2013 14:11
Just starting obecli and then exiting results in segfault.

> user@enc:~/obe-rt# ./obecli
>
> Open Broadcast Encoder command line interface.
> Version 1.0
>
> obecli> quit
> closing obe
> input cancelled
> filters cancelled
> encoders cancelled
> Segmentation fault

This patch fixes the segfault by not allowing pthread_join( NULL, ...) to called.
The warnings were:
> input/sdi/sdi.c: In function 'obe_v210_line_to_nv20_c':
> input/sdi/sdi.c:74:23: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
> input/sdi/linsys/linsys.c: In function 'capture_data':
> input/sdi/linsys/linsys.c:237:20: warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]
> input/sdi/linsys/linsys.c:215:14: note: 'val' was declared here
The warnings were:
> input/sdi/decklink/decklink.cpp:68:1: warning: narrowing conversion of '-1' from 'int' to 'uint32_t {aka unsigned int}' inside { } is ill-formed in C++11 [-Wnarrowing]
> input/sdi/decklink/decklink.cpp:76:1: warning: narrowing conversion of '-1' from 'int' to 'uint32_t {aka unsigned int}' inside { } is ill-formed in C++11 [-Wnarrowing]
> input/sdi/decklink/decklink.cpp:97:1: warning: narrowing conversion of '-1' from 'int' to 'uint32_t {aka unsigned int}' inside { } is ill-formed in C++11 [-Wnarrowing]
kierank added a commit that referenced this pull request Oct 28, 2013
Crash fix and random warning fixes
@kierank kierank merged commit 6bac0f1 into ob-encoder:master Oct 28, 2013
gfto pushed a commit to gfto/obe-rt that referenced this pull request Oct 29, 2013
Calling pthread_cancel( NULL ) results in the same crash as calling
pthread_join( NULL, ... )

This fixes the following:

  Start obecli.
  obecli> set input decklink
  obecli> set input opts card-idx=0
  obecli> probe input
  Probing device: Decklink card 0. Timeout 20 seconds
  Detected input streams:
  Input-stream-id: 0 - Video: RAW 720x576i 25/1fps
  Input-stream-id: 1 - Audio: PCM 16 channels 48kHz
  Encoder outputs:
  Output-stream-id: 0 - Input-stream-id: 0 - Video: AVC
  Output-stream-id: 1 - Input-stream-id: 1 - Audio: RAW - SDI audio pair: 1
  obecli> quit
  closing obe
  Program received signal SIGSEGV, Segmentation fault.
  0x00007ffff6675be1 in pthread_cancel () from /lib64/libpthread.so.0
  (gdb) bt
  #0  0x00007ffff6675be1 in pthread_cancel () from /lib64/libpthread.so.0
  ob-encoder#1  0x00000000004483d1 in obe_close (h=0x1417860) at obe.c:1233
  ob-encoder#2  0x000000000044433f in stop_encode (command=command@entry=0x0, child=child@entry=0x0) at obecli.c:1353
  ob-encoder#3  0x0000000000446d92 in main (argc=<optimized out>, argv=<optimized out>) at obecli.c:1534
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants