• 1
  • 14
  • 15
  • 16(current)
  • 17
  • 18
  • 23
Comskip for Linux released
Anyone getting different results from Windows to Linux even with same INI file?

Windows public Comskip 0.81.061
Linux Comskip 0.93f.000

The INI files are the same on both machines, but in the debug log you can see some difference in parameters not set in the INI file.

Is there an equivalent version number between Linux/Windows so I know I'm comparing like with like, or is Linux a complete fork?
Reply
I gave this a try on Fedora 20 and while it seems to go a fair way, it does eventually segfault.

So before I start digging into why, I have a question...

Is there any option to make this tool dump the EDL in time-offset format rather than frame-offset? Keeping in mind that streams from broadcasters any more are typically mixed framerate by the time they splice their commercials in, so it's not good enough to just assume a constant framerate throughout a file and multiply frame offset by that one framerate, but indeed, a time-offset cut-list has to take into account framerate changes.
Reply
(2014-05-11, 15:16)thos Wrote: Anyone getting different results from Windows to Linux even with same INI file?

Windows public Comskip 0.81.061
Linux Comskip 0.93f.000

The INI files are the same on both machines, but in the debug log you can see some difference in parameters not set in the INI file.

Is there an equivalent version number between Linux/Windows so I know I'm comparing like with like, or is Linux a complete fork?

Just to update this, the difference is that the Windows version will correctly drop the commercial at the very start of the recording, but it seems the Linux version processes differently and does not do this. They both capture the same commercials within the show itself. This happens on some shows not all.

Is anyone else having this problem? Any ideas how I can resolve?
Reply
Can anyone comment as to whether there is support for mp4 files?

If not, would the solution just be to convert the mp4 files to a supported filetype?
Reply
(2014-05-12, 19:37)CogLinguist Wrote: Can anyone comment as to whether there is support for mp4 files?

If not, would the solution just be to convert the mp4 files to a supported filetype?

I haven't tried since I don't have any mp4 files at hand right now, but Comskip uses ffmpeg to "play" the videos (which XBMC uses also) so I'd guess it does supports mp4 files as well.
Reply
Hi guys,

I am trying to compile comskip on a raspberry pi under raspian wheezy. Due to the requirements some parts of rasbian jessie are also included. I get the following error(s):
Code:
make  all-am
make[1]: Entering directory `/home/pi/comskip-0.93h'
g++ -DHAVE_CONFIG_H -I.     -g -O2 -std=gnu++11 -MT comskip-mpeg2dec.o -MD -MP -MF .deps/comskip-mpeg2dec.Tpo -c -o comskip-mpeg2dec.o `test -f 'mpeg2dec.cpp' || echo './'`mpeg2dec.cpp
mpeg2dec.cpp: In function ‘bool {anonymous}::video_packet_process({anonymous}::VideoState*, AVPacket*)’:
mpeg2dec.cpp:1184:74: error: ‘avcodec_get_frame_class’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                          ^
mpeg2dec.cpp:1184:112: error: ‘av_opt_ptr’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                                                                ^
mpeg2dec.cpp: In function ‘bool {anonymous}::stream_component_open({anonymous}::VideoState*, int, CS::CommercialSkipper*, {anonymous}::Audio*)’:
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp: In function ‘void {anonymous}::file_close()’:
mpeg2dec.cpp:1627:32: error: cannot convert ‘AVFrame*’ to ‘AVFrame**’ for argument ‘1’ to ‘void avcodec_free_frame(AVFrame**)’
   avcodec_free_frame(is->pFrame);
                                ^
make[1]: *** [comskip-mpeg2dec.o] Fehler 1
make[1]: Leaving directory `/home/pi/comskip-0.93h'
make: *** [all] Fehler 2
Identical results for the 0.93g version. I am using:
g++ 4.8.2
libavcodec 54.35.0
libavformat 54.20.4
libavutil 52.3.0
argtable: 12

The std=gnu++11 seems to be set, so the errors from 0.91 (as discussed on the first page of this discussion) shouldn't apply. Any ideas how to solve these issues?

Best regards,

Marshell
Reply
(2014-05-12, 11:19)thos Wrote:
(2014-05-11, 15:16)thos Wrote: Anyone getting different results from Windows to Linux even with same INI file?

Windows public Comskip 0.81.061
Linux Comskip 0.93f.000

The INI files are the same on both machines, but in the debug log you can see some difference in parameters not set in the INI file.

Is there an equivalent version number between Linux/Windows so I know I'm comparing like with like, or is Linux a complete fork?

Just to update this, the difference is that the Windows version will correctly drop the commercial at the very start of the recording, but it seems the Linux version processes differently and does not do this. They both capture the same commercials within the show itself. This happens on some shows not all.

Is anyone else having this problem? Any ideas how I can resolve?

The very first Linux version was forked from the windows source code.

I (or anyone else with the required skill) probably should take a closer look at what's happening to cause the Linux version to "miss" the first commercial.
Reply
I've got back to back logs from the windows and linux outputs of same file if its any use to you.

As I said, it does work on some starting commercials, so I can get some logs of it working also if that helps.

Tom
Reply
(2014-05-13, 22:21)marshell2 Wrote: Hi guys,

I am trying to compile comskip on a raspberry pi under raspian wheezy. Due to the requirements some parts of rasbian jessie are also included. I get the following error(s):
Code:
make  all-am
make[1]: Entering directory `/home/pi/comskip-0.93h'
g++ -DHAVE_CONFIG_H -I.     -g -O2 -std=gnu++11 -MT comskip-mpeg2dec.o -MD -MP -MF .deps/comskip-mpeg2dec.Tpo -c -o comskip-mpeg2dec.o `test -f 'mpeg2dec.cpp' || echo './'`mpeg2dec.cpp
mpeg2dec.cpp: In function ‘bool {anonymous}::video_packet_process({anonymous}::VideoState*, AVPacket*)’:
mpeg2dec.cpp:1184:74: error: ‘avcodec_get_frame_class’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                          ^
mpeg2dec.cpp:1184:112: error: ‘av_opt_ptr’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                                                                ^
mpeg2dec.cpp: In function ‘bool {anonymous}::stream_component_open({anonymous}::VideoState*, int, CS::CommercialSkipper*, {anonymous}::Audio*)’:
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp: In function ‘void {anonymous}::file_close()’:
mpeg2dec.cpp:1627:32: error: cannot convert ‘AVFrame*’ to ‘AVFrame**’ for argument ‘1’ to ‘void avcodec_free_frame(AVFrame**)’
   avcodec_free_frame(is->pFrame);
                                ^
make[1]: *** [comskip-mpeg2dec.o] Fehler 1
make[1]: Leaving directory `/home/pi/comskip-0.93h'
make: *** [all] Fehler 2
Identical results for the 0.93g version. I am using:
g++ 4.8.2
libavcodec 54.35.0
libavformat 54.20.4
libavutil 52.3.0
argtable: 12

The std=gnu++11 seems to be set, so the errors from 0.91 (as discussed on the first page of this discussion) shouldn't apply. Any ideas how to solve these issues?

Best regards,

Marshell
Super easy fix.

Code:
- avcodec_free_frame(is->pFrame);
+ avcodec_free_frame(&is->pFrame);

Builds otherwise for me with that change.
Reply
(2014-06-08, 20:40)vin1233321 Wrote:
(2014-05-13, 22:21)marshell2 Wrote: Hi guys,

I am trying to compile comskip on a raspberry pi under raspian wheezy. Due to the requirements some parts of rasbian jessie are also included. I get the following error(s):
Code:
make  all-am
make[1]: Entering directory `/home/pi/comskip-0.93h'
g++ -DHAVE_CONFIG_H -I.     -g -O2 -std=gnu++11 -MT comskip-mpeg2dec.o -MD -MP -MF .deps/comskip-mpeg2dec.Tpo -c -o comskip-mpeg2dec.o `test -f 'mpeg2dec.cpp' || echo './'`mpeg2dec.cpp
mpeg2dec.cpp: In function ‘bool {anonymous}::video_packet_process({anonymous}::VideoState*, AVPacket*)’:
mpeg2dec.cpp:1184:74: error: ‘avcodec_get_frame_class’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                          ^
mpeg2dec.cpp:1184:112: error: ‘av_opt_ptr’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                                                                ^
mpeg2dec.cpp: In function ‘bool {anonymous}::stream_component_open({anonymous}::VideoState*, int, CS::CommercialSkipper*, {anonymous}::Audio*)’:
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp: In function ‘void {anonymous}::file_close()’:
mpeg2dec.cpp:1627:32: error: cannot convert ‘AVFrame*’ to ‘AVFrame**’ for argument ‘1’ to ‘void avcodec_free_frame(AVFrame**)’
   avcodec_free_frame(is->pFrame);
                                ^
make[1]: *** [comskip-mpeg2dec.o] Fehler 1
make[1]: Leaving directory `/home/pi/comskip-0.93h'
make: *** [all] Fehler 2
Identical results for the 0.93g version. I am using:
g++ 4.8.2
libavcodec 54.35.0
libavformat 54.20.4
libavutil 52.3.0
argtable: 12

The std=gnu++11 seems to be set, so the errors from 0.91 (as discussed on the first page of this discussion) shouldn't apply. Any ideas how to solve these issues?

Best regards,

Marshell
Super easy fix.

Code:
- avcodec_free_frame(is->pFrame);
+ avcodec_free_frame(&is->pFrame);

Builds otherwise for me with that change.

Same error here. But i don't know where to make these changes. Could you explain? thx
Reply
Anybody gotten this to compile in Mac OS X 10.9 with Xcode 5.1.1?

ffmpeg and arguable packages can be obtained from Homebrew. I believe comskip could also be added to Homebrew if we can get it to compile.

To start with <features.h> is not available in OS X.

So it should be checked for in CsOptions.h (right above the #ifdef __GNUC__)

Code:
#if !defined(__APPLE__)
#endif

Once that is set, I still get compilation errors:

Quote:/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
g++ -DHAVE_CONFIG_H -I. -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/argtable/2.13/include -g -O2 -std=gnu++11 -MT comskip-mpeg2dec.o -MD -MP -MF .deps/comskip-mpeg2dec.Tpo -c -o comskip-mpeg2dec.o `test -f 'mpeg2dec.cpp' || echo './'`mpeg2dec.cpp
In file included from mpeg2dec.cpp:55:
./inttypes.h:10:23: error: expected ';' after top level declarator
typedef signed __int64 int64_t;
^
;
./inttypes.h:10:24: warning: declaration does not declare anything [-Wmissing-declarations]
typedef signed __int64 int64_t;
^~~~~~~
./inttypes.h:15:18: error: typedef redefinition with different types ('unsigned int' vs 'int')
typedef unsigned __int64 uint64_t;
^
./inttypes.h:10:16: note: previous definition is here
typedef signed __int64 int64_t;
^
./inttypes.h:15:25: error: expected ';' after top level declarator
typedef unsigned __int64 uint64_t;
^
;
./inttypes.h:15:26: warning: declaration does not declare anything [-Wmissing-declarations]
typedef unsigned __int64 uint64_t;
^~~~~~~~
mpeg2dec.cpp:1140:6: warning: indirection of non-volatile null pointer will be deleted, not trap [-Wnull-dereference]
*(int *)0 = 0;
^~~~~~~~~
mpeg2dec.cpp:1140:6: note: consider using __builtin_trap() or qualifying pointer with 'volatile'
3 warnings and 3 errors generated.
make[1]: *** [comskip-mpeg2dec.o] Error 1
make: *** [all] Error 2

If I comment out those typedefs I still get a bunch of errors:

Quote:/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am
g++ -DHAVE_CONFIG_H -I. -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/argtable/2.13/include -g -O2 -std=gnu++11 -MT comskip-mpeg2dec.o -MD -MP -MF .deps/comskip-mpeg2dec.Tpo -c -o comskip-mpeg2dec.o `test -f 'mpeg2dec.cpp' || echo './'`mpeg2dec.cpp
mpeg2dec.cpp:1140:6: warning: indirection of non-volatile null pointer will be deleted, not trap [-Wnull-dereference]
*(int *)0 = 0;
^~~~~~~~~
mpeg2dec.cpp:1140:6: note: consider using __builtin_trap() or qualifying pointer with 'volatile'
1 warning generated.
mv -f .deps/comskip-mpeg2dec.Tpo .deps/comskip-mpeg2dec.Po
g++ -DHAVE_CONFIG_H -I. -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/ffmpeg/2.2.4/include -I/usr/local/Cellar/argtable/2.13/include -g -O2 -std=gnu++11 -MT comskip-comskip.o -MD -MP -MF .deps/comskip-comskip.Tpo -c -o comskip-comskip.o `test -f 'comskip.cpp' || echo './'`comskip.cpp
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:38:11: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return (std::abs(f[yOff + xMinus] - f[yOff + x] ) >= _threshold)
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:39:8: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
|| (std::abs(f[yOff + xPlus] - f[yOff + x] ) >= _threshold);
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:64:11: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return (std::abs(f[yMinus * width + x] - f[y * width + x]) >= _threshold)
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:65:8: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
|| (std::abs(f[yPlus * width + x] - f[y * width + x]) >= _threshold);
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:91:10: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return std::abs(f[yOff + xMinus] - f[yOff + xPlus] ) >= _threshold;
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:115:10: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return std::abs(f[yMinus * width + x] - f[yPlus * width + x]) >= _threshold;
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:145:10: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return std::abs( (f[yOff + xMinusMinus]
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:180:10: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return std::abs((f[yMinusMinus * width + x]
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:212:10: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return std::abs((f[yMinus * width + xMinus]
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
In file included from comskip.cpp:43:
In file included from ./comskip.h:5:
./CsEdges.h:245:10: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
return std::abs(f[yMinus * width + xMinus]
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
comskip.cpp:1046:24: warning: comparison of constant 2 with expression of type 'bool' is always false [-Wtautological-constant-out-of-range-compare]
if ( cut_on_ar_change == 2 )
~~~~~~~~~~~~~~~~ ^ ~
comskip.cpp:1067:24: warning: comparison of constant 2 with expression of type 'bool' is always false [-Wtautological-constant-out-of-range-compare]
|| cut_on_ar_change >= 2 )
~~~~~~~~~~~~~~~~ ^ ~
comskip.cpp:3932:38: warning: comparison of constant 2 with expression of type 'bool' is always false [-Wtautological-constant-out-of-range-compare]
if ( cut_on_ar_change > 2
~~~~~~~~~~~~~~~~ ^ ~
comskip.cpp:5607:26: error: no member named 'getcwd' in the global namespace
mpgFn = std:Confusedtring(::getcwd(cwd, sizeof(cwd))) + DIRSEPSTR + _mpegFilename;
~~^
comskip.cpp:5638:21: error: use of undeclared identifier 'getcwd'
bn = std:Confusedtring(getcwd(cwd, sizeof(cwd))) + DIRSEPSTR + _basename;
^
comskip.cpp:7110:22: error: use of undeclared identifier '_read'; did you mean '__sFILE::_read'?
int i(_read(inf, Buf, (unsigned int)len));
^~~~~
__sFILE::_read
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdio.h:132:8: note: '__sFILE::_read' declared here
int (*_read) (void *, char *, int);
^
comskip.cpp:7110:22: error: invalid use of non-static data member '_read'
int i(_read(inf, Buf, (unsigned int)len));
^~~~~
comskip.cpp:7131:32: error: use of undeclared identifier 'write'
(void)write(outf, Buf, j);
^
comskip.cpp:7133:32: error: use of undeclared identifier 'write'
(void)write(outf, MPEG2SysHdr, sizeof(MPEG2SysHdr));
^
comskip.cpp:7137:21: error: use of undeclared identifier 'write'
if ( write(outf, Buf+j, i-j) <= 0 )
^
comskip.cpp:7164:2: error: use of undeclared identifier '_close'
_close(outf);
^
comskip.cpp:7845:15: warning: assigning field to itself [-Wself-assign-field]
_frameCount = _frameCount;
^
comskip.cpp:7857:9: error: no member named 'abs' in namespace 'std'; did you mean simply 'abs'?
if ( std::abs(csBrightness - cs.brightness) < 2 )
^~~~~~~~
abs
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdlib.h:129:6: note: 'abs' declared here
int abs(int) __pure2;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
4 warnings and 20 errors generated.
make[1]: *** [comskip-comskip.o] Error 1
make: *** [all] Error 2
Reply
(2014-06-30, 22:05)snickers2k Wrote:
(2014-06-08, 20:40)vin1233321 Wrote:
(2014-05-13, 22:21)marshell2 Wrote: Hi guys,

I am trying to compile comskip on a raspberry pi under raspian wheezy. Due to the requirements some parts of rasbian jessie are also included. I get the following error(s):
Code:
make  all-am
make[1]: Entering directory `/home/pi/comskip-0.93h'
g++ -DHAVE_CONFIG_H -I.     -g -O2 -std=gnu++11 -MT comskip-mpeg2dec.o -MD -MP -MF .deps/comskip-mpeg2dec.Tpo -c -o comskip-mpeg2dec.o `test -f 'mpeg2dec.cpp' || echo './'`mpeg2dec.cpp
mpeg2dec.cpp: In function ‘bool {anonymous}::video_packet_process({anonymous}::VideoState*, AVPacket*)’:
mpeg2dec.cpp:1184:74: error: ‘avcodec_get_frame_class’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                          ^
mpeg2dec.cpp:1184:112: error: ‘av_opt_ptr’ was not declared in this scope
   best_effort_timestamp = *(int64_t *)av_opt_ptr(avcodec_get_frame_class(), is->pFrame, "best_effort_timestamp");
                                                                                                                ^
mpeg2dec.cpp: In function ‘bool {anonymous}::stream_component_open({anonymous}::VideoState*, int, CS::CommercialSkipper*, {anonymous}::Audio*)’:
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1350:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
    codecCtx->lowres = pcs->getLowRes();
              ^
mpeg2dec.cpp:1419:14: warning: ‘AVCodecContext::lowres’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:2718) [-Wdeprecated-declarations]
mpeg2dec.cpp: In function ‘void {anonymous}::file_close()’:
mpeg2dec.cpp:1627:32: error: cannot convert ‘AVFrame*’ to ‘AVFrame**’ for argument ‘1’ to ‘void avcodec_free_frame(AVFrame**)’
   avcodec_free_frame(is->pFrame);
                                ^
make[1]: *** [comskip-mpeg2dec.o] Fehler 1
make[1]: Leaving directory `/home/pi/comskip-0.93h'
make: *** [all] Fehler 2
Identical results for the 0.93g version. I am using:
g++ 4.8.2
libavcodec 54.35.0
libavformat 54.20.4
libavutil 52.3.0
argtable: 12

The std=gnu++11 seems to be set, so the errors from 0.91 (as discussed on the first page of this discussion) shouldn't apply. Any ideas how to solve these issues?

Best regards,

Marshell
Super easy fix.

Code:
- avcodec_free_frame(is->pFrame);
+ avcodec_free_frame(&is->pFrame);

Builds otherwise for me with that change.

Same error here. But i don't know where to make these changes. Could you explain? thx

Ok. i finally found the file where to make these changes. Its "mpeg2dec.cpp". If anyone stumpled on this too.
Now it builds correctly.


But when i use "comskip /path/to/file.mkv" , it does not work. comskip is checking the file. but the file has still commercials. Sad does someone know what to do?
also can somebody please write a short tutorial on how to run Comskip with TVHeadend automatically as a post recording script?
Reply
^ comskip doesn't "remove" commericals.
It creates metadata so that when it is played back the commericial is skipped.
Reply
oh, thx. You're right. So it DOES work. I get the metadata files.
so i tried it with XBMC. and the commercials are skipped mostly. but this results in a very weird behavior of XBMC at manually skipping forward or backward.
So to really cut out the commercials, for making it work with any player and for saving disk-space - there is an Windows app "Comclean". But i can't find a Linux alternative. Anyone having an idea?
Reply
Code:
configure: error: Package requirements (libavcodec >= 53.42) were not met:

Requested 'libavcodec >= 53.42' but version of libavcodec is 52.107.0

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables AVCODEC_CFLAGS
and AVCODEC_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
pimp-ass-server:/var/tmp/ComSkipWork/comskip-0.93h# ffmpeg -version
ffmpeg version N-62510-g2799845
built on Apr 18 2014 05:12:39 with gcc 4.6 (Debian 4.6.3-1)
configuration: --prefix=/root/ffmpeg-static/32bit --arch=x86_32 --extra-cflags='-m32 -I/root/ffmpeg-static/32bit/include -static' --extra-ldflags='-m32 -L/root/ffmpeg-static/32bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
libavutil      52. 77.100 / 52. 77.100
libavcodec     55. 58.103 / 55. 58.103
libavformat    55. 37.100 / 55. 37.100
libavdevice    55. 13.100 / 55. 13.100
libavfilter     4.  4.100 /  4.  4.100
libswscale      2.  6.100 /  2.  6.100
libswresample   0. 18.100 /  0. 18.100
libpostproc    52.  3.100 / 52.  3.100
server:/var/tmp/ComSkipWork/comskip-0.93h#

Ive install ffmpeg in /usr/local/bin/ffmpeg
why doesnt it see its a new enough version?
Reply
  • 1
  • 14
  • 15
  • 16(current)
  • 17
  • 18
  • 23

Logout Mark Read Team Forum Stats Members Help
Comskip for Linux released6