gpac / gpac

GPAC Ultramedia OSS for Video Streaming & Next-Gen Multimedia Transcoding, Packaging & Delivery
https://gpac.io
GNU Lesser General Public License v2.1
2.81k stars 535 forks source link

GPAC Build error: no member named 'first_dts' in 'struct AVStream' #1866

Closed laidactienbn closed 3 years ago

laidactienbn commented 3 years ago

I am building GPAC on OSX.

When running make in directory gpac_public:

cd ../gpac_public
./configure --extra-cflags=-Wno-deprecated
make
sudo make install

I encounter an error called "filters/ff_dmx.c:249:16: error: no member named 'first_dts' in 'struct AVStream'" I have already looked for ff_dmx.c and libavformat/avformat.h where "struct AVStream" is defined. I even include libavformat/avformat.h into ff_dmx.c. However, it does not solve the problem.

Can anyone encounter this error? How to fix it?

aureliendavid commented 3 years ago

can you post your config.log file and the output of the ./configure step?

jeanlf commented 3 years ago

What is you ffmpeg / libavformat version ?

laidactienbn commented 3 years ago

My config.log file:

Logs for GPAC configure --extra-cflags=-Wno-deprecated
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.5 (clang-1205.0.22.11)
Target: x86_64-apple-darwin20.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.5 (clang-1205.0.22.11)
Target: x86_64-apple-darwin20.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
*** CC/CXX Test Failed (args -I/Users/tienld/gpac/gpac_public/extra_lib/include/platinum -L/usr/local/lib -L/Users/tienld/gpac/gpac_public/extra_lib/lib/gcc -lPlatinum -lPltMediaServer -lPltMediaConnect -lPltMediaRenderer -lNeptune -lZlib -lpthread) : 

ld: library not found for -lPlatinum
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Source was: 
#include <dlfcn.h>
int main( void ) { dlopen("foo", 0); return 0; }

*** CC/CXX Test Failed (args -I/usr/include -I/usr/local/include -L/usr/local/lib -L/usr/lib -L/usr/local/lib -lOpenSVCDec) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'OpenSVCDecoder/SVCDecoder_ietr_api.h' file not found
#include <OpenSVCDecoder/SVCDecoder_ietr_api.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <OpenSVCDecoder/SVCDecoder_ietr_api.h>
int main( void ) { return 0; }

*** CC/CXX Test Failed (args -I/usr/include -I/usr/local/include -L/usr/lib -L/usr/local/lib -lopenhevc -lm -lpthread -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:2:10: fatal error: 'libopenhevc/openhevc.h' file not found
#include <libopenhevc/openhevc.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <stdio.h>
#include <libopenhevc/openhevc.h>
int main( void ) { oh_init(1, 1); return 0; }

*** CC/CXX Test Failed (args -I/usr/local/include -I/usr/local/include -L/usr/local/lib -lfreetype -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'ft2build.h' file not found
#include <ft2build.h>
         ^~~~~~~~~~~~
1 error generated.

Source was: 
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include FT_OUTLINE_H
int main( void ) { return 0; }

*** CC/CXX Test Failed (args -I/usr/local/include -lssl -lcrypto -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
         ^~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <openssl/ssl.h>
#include <openssl/x509.h>
#include <openssl/err.h>
#include <openssl/rand.h>
int main( void ) { return 0; }

*** CC/CXX Test Failed (args -I/usr/local/include -lswresample) : 

Undefined symbols for architecture x86_64:
  "_av_mallocz", referenced from:
      _swr_alloc in libswresample.a(options.o)
  "_av_opt_set_defaults", referenced from:
      _swr_alloc in libswresample.a(options.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Source was: 
#include "libswresample/swresample.h"
int main(void) {
    SwrContext *aresampler = swr_alloc();
    free(aresampler);
    return 0;
}

*** CC/CXX Test Failed (args -L/usr/local/lib -lfreenect) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'libfreenect/libfreenect.h' file not found
#include <libfreenect/libfreenect.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <libfreenect/libfreenect.h>
int main( void ) { return 0; }

*** CC/CXX Test Failed (args -I/Users/tienld/gpac/gpac_public/extra_lib/include/freenect -L/Users/tienld/gpac/gpac_public/extra_lib/lib/gcc -lfreenect) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'libfreenect/libfreenect.h' file not found
#include <libfreenect/libfreenect.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <libfreenect/libfreenect.h>
int main( void ) { return 0; }

*** CC/CXX Test Failed (args -DLIBOSS_INTERNAL -I/include/ -I/include/liboss -L/lib -loss -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'soundcard.h' file not found
#include <soundcard.h>
         ^~~~~~~~~~~~~
1 error generated.

Source was: 
#include <soundcard.h>
int main( void ) { return 0; }

*** CC/CXX Test Failed (args -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'linux/dvb/dmx.h' file not found
#include <linux/dvb/dmx.h>
         ^~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
int main( void ) {
}

*** CC/CXX Test Failed (args -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'alsa/asoundlib.h' file not found
#include <alsa/asoundlib.h>
         ^~~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <alsa/asoundlib.h>
int main( void ) {
return 0;
}

*** CC/CXX Test Failed (args -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'pulse/pulseaudio.h' file not found
#include <pulse/pulseaudio.h>
         ^~~~~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <pulse/pulseaudio.h>
int main( void ) {
return 0;
}

*** CC/CXX Test Failed (args -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'jack/jack.h' file not found
#include <jack/jack.h>
         ^~~~~~~~~~~~~
1 error generated.

Source was: 
#include <jack/jack.h>
int main( void ) {
return 0;
}

*** CC/CXX Test Failed (args -I/usr/include/directfb -L-ldirectfb -lfusion -ldirect -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'directfb.h' file not found
#include <directfb.h>
         ^~~~~~~~~~~~
1 error generated.

Source was: 
#include <directfb.h>
int main( void ) { return 0; }

*** CC/CXX Test Failed (args -lhidapi-hidraw -L/usr/local/lib) : 

/var/folders/nw/8y0k9ymd06v9k24pkq68wp6r0000gp/T//gpac-conf-14513-97875-2487.c:1:10: fatal error: 'hidapi/hidapi.h' file not found
#include <hidapi/hidapi.h>
         ^~~~~~~~~~~~~~~~~
1 error generated.

Source was: 
#include <hidapi/hidapi.h>
int main( void ) { hid_init(); hid_exit(); return 0; }

This is my ./configure output:

** System Configuration
Install prefix: /usr/local
Source path: /Users/tienld/gpac/gpac_public
C   compiler: gcc
C++ compiler: g++
make: make
CPU: x86_64
Big Endian: no

** GPAC 1.1.0-DEV rev1153-g4ad9b4f20-master Core Configuration **
Static Modules: no
debug version: no
GProf enabled: no
Memory tracking enabled: no
Sanitizer enabled: no
Fixed-Point Version: no
IPV6 Support: yes
QuickJS Support: yes (qjslibc yes)

** Detected libraries **
zlib: system
OpenGL support: yes
TinyGL support: no
OpenSSL support: no
OSS Audio: no
ALSA Audio: no
Jack Audio: no
Pulse Audio: no
DirectFB: no
X11 Shared Memory support: yes (path: /usr/X11R6)
X11 XVideo support: yes
SDL: yes
FreeType: system
JPEG: system
OpenJPEG: system
PNG: system
MAD: system
FAAD: system
XVID: system
FFMPEG: system
FFMPG VVC Support: yes
LZMA: yes
Xiph OGG: system
Platinum UPnP: no
Xiph Vorbis: system
Xiph Theora: system
A52 (AC3): system
OpenSVCDecoder: yes
OpenHEVCDecoder: yes
Freenect: no
nghttp2: system

Creating config.mak
config.h is unchanged
Check config.log for detection failures
Done - type 'make help' for make info, 'make' to build

My ffmpeg version:

ffmpeg version git-2021-07-28-f0ed8de Copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.5 (clang-1205.0.22.11)
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libopus --enable-libxvid --enable-libkvazaar --samples=fate-suite/
  libavutil      57.  2.100 / 57.  2.100
  libavcodec     59.  3.102 / 59.  3.102
  libavformat    59.  4.101 / 59.  4.101
  libavdevice    59.  0.100 / 59.  0.100
  libavfilter     8.  1.103 /  8.  1.103
  libswscale      6.  0.100 /  6.  0.100
  libswresample   4.  0.100 /  4.  0.100
  libpostproc    56.  0.100 / 56.  0.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
jeanlf commented 3 years ago

indeed, change of API on ffmpeg side - now patched thanks for the report