fsphil / hacktv Goto Github PK
View Code? Open in Web Editor NEWAnalogue TV transmitter for the HackRF
License: GNU General Public License v3.0
Analogue TV transmitter for the HackRF
License: GNU General Public License v3.0
I created/collected some images of pattern generators I tried to use with HackTV.
But I have to compose for each of them a single AVI file (in VirtualDub for example) and have to deal with "seeking video" flashing screen.
Formats I tried are BMP, JPG, PNG, SVG and TIFF.
About SVG I will not complain but I see even that format is handled by FFMpeg. That's the native format for my patterns :P
For the files with -r switch command line opens the file with endless loop (capture card sees only flashing VBI pulse), without it it is never displayed and the program ends.
Example CL:
./hacktv -o fl2k '/home/zcooger/Desktop/rca.jpg' -r -m pal
Video: 832x576 25.00 fps (full frame 1024x625)
Sample rate: 16000000
Allocating 6 zero-copy buffers
libusb: error [op_dev_mem_alloc] alloc dev mem failed errno 12
Failed to allocate zero-copy buffer for transfer 4
Falling back to buffers in userspace
UUURequested sample rate 16000000 not possible, using 15999998.000000, error is -2.000000
Opening '/home/zcooger/Desktop/rca.jpg'...
Input #0, image2, from '/home/zcooger/Desktop/rca.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 49958 kb/s
Stream #0:0: Video: mjpeg, gray(bt470bg/unknown/unknown), 768x576 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Using video stream 0.
No audio streams found.
Opening '/home/zcooger/Desktop/rca.jpg'...
Input #0, image2, from '/home/zcooger/Desktop/rca.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 49958 kb/s
Stream #0:0: Video: mjpeg, gray(bt470bg/unknown/unknown), 768x576 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Using video stream 0.
No audio streams found.
Opening '/home/zcooger/Desktop/rca.jpg'...
Input #0, image2, from '/home/zcooger/Desktop/rca.jpg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 49958 kb/s
Stream #0:0: Video: mjpeg, gray(bt470bg/unknown/unknown), 768x576 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Using video stream 0.
No audio streams found.
SVG:
./hacktv -o fl2k '/media/zcooger/TOSHIBA 750/KATALOG GLOWNY/Obrazy/Plansze Testowe/EBU 75 RGB/ORIGINAL/EBU 75 RGB.svg' -r -m pal
Video: 832x576 25.00 fps (full frame 1024x625)
Sample rate: 16000000
Allocating 6 zero-copy buffers
libusb: error [op_dev_mem_alloc] alloc dev mem failed errno 12
Failed to allocate zero-copy buffer for transfer 4
Falling back to buffers in userspace
UUURequested sample rate 16000000 not possible, using 15999998.000000, error is -2.000000
Opening '/media/zcooger/TOSHIBA 750/KATALOG GLOWNY/Obrazy/Plansze Testowe/EBU 75 RGB/ORIGINAL/EBU 75 RGB.svg'...
Input #0, svg_pipe, from '/media/zcooger/TOSHIBA 750/KATALOG GLOWNY/Obrazy/Plansze Testowe/EBU 75 RGB/ORIGINAL/EBU 75 RGB.svg':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: svg, bgra, 768x576, 25 tbr, 25 tbn, 25 tbc
Using video stream 0.
No audio streams found.
Opening '/media/zcooger/TOSHIBA 750/KATALOG GLOWNY/Obrazy/Plansze Testowe/EBU 75 RGB/ORIGINAL/EBU 75 RGB.svg'...
Input #0, svg_pipe, from '/media/zcooger/TOSHIBA 750/KATALOG GLOWNY/Obrazy/Plansze Testowe/EBU 75 RGB/ORIGINAL/EBU 75 RGB.svg':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: svg, bgra, 768x576, 25 tbr, 25 tbn, 25 tbc
Using video stream 0.
No audio streams found.
Opening '/media/zcooger/TOSHIBA 750/KATALOG GLOWNY/Obrazy/Plansze Testowe/EBU 75 RGB/ORIGINAL/EBU 75 RGB.svg'...
Input #0, svg_pipe, from '/media/zcooger/TOSHIBA 750/KATALOG GLOWNY/Obrazy/Plansze Testowe/EBU 75 RGB/ORIGINAL/EBU 75 RGB.svg':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: svg, bgra, 768x576, 25 tbr, 25 tbn, 25 tbc
Using video stream 0.
No audio streams found.
For interested: Test Patterns.7z.zip
Using file output produces grayscale baseband set of raw images in desired type. I'd like to correct horizontal synchronization level of the output because it seems incorrect for digital representation of analog composite TV signal where sync pulse level in 8bit colorspace lies at 0 and backporch at around 60 ~64.
At this moment I tried modifying the gamma value for real PAL mode but it gave worse result.
I'm happy with the software, but it encodes the video but the audio does not.
I have tried several mp2, mp4, acc, ac3, mp3 files
I have ubuntu and hackrf.
Can you help me?
vanhoteen@ubuntu:~$ hacktv -m g -f 583000000 -g 47 /home/vanhoteen/Vídeos/canalplus1990.mp4 -r --syster
Video: 832x576 25.00 fps (full frame 1024x625)
Sample rate: 16000000
UOpening '/home/vanhoteen/Vídeos/canalplus1990.mp4'...
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/vanhoteen/Vídeos/canalplus1990.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2015-08-28T06:01:56.000000Z
Duration: 00:02:39.57, start: 0.000000, bitrate: 318 kb/s
U Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 480x360 [SAR 1:1 DAR 4:3], 219 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 95 kb/s (default)
Metadata:
creation_time : 2015-08-28T06:01:56.000000Z
handler_name : IsoMedia File Produced by Google, 5-11-2011
Using video stream 0.
Using audio stream 1.
This ticket is made to suggest adding vertical blanking time code (VITC).
Quick non-technical demonstration: https://www.youtube.com/watch?v=aU40YRBa6nk
I wondered how this feature would work but first simple idea I got is to place time information of media file played back at the current moment.
Such signal can "fake" any professional video cassette deck.
Hi,
is there any bug in the syster encoder? In the decoded picture i have many stripes / Lines jumping arround on wrong positions... Have tested per live-view in MeuhMeuh-TV aswell the decoded baseband-file per offline descrambler (cryptimage). There all the same stripes in the top of the picture. I have tested my own encrypded videos, they didn't have any stripes in view.
Regards, Marco.
I have an issue on some machines that I can't get above 4 294 967 295 hz transmitting frequency. That's 0XFFFFFFFF => 32bit. On my Linux machine it works well above that frequency. e.g. 5.837Ghz... There must be some overflow in conversion.
WSS tag is stationary.
Additionaly it is placed on wrong line since single line buffer is applied and in result it should land higher.
I bet aspect ratio switch is working until the video is scrambled. After decoding WSS tag may be displaced and messed by the decoder so I suggest to:
Command I used:
hacktv -m pal -t uint8 -o ebu_vc.bin --videocrypt free --wss auto ebu75.avi
I know the readme says it won't. But please reconsider this! I really need this feature!
I totally trust in in your coding skills! You can do it! And if not, maybe someone in the
community is able to issue a pull request to resolve this?!
I've been trying to run HackTV on a Raspberry Pi 4 B+ (4GB RAM).
This setup works fine when showing a test card at an 11MHz or 14MHz sample rate, but when Videocrypt is enabled the Pi can't keep up (HackRF suffers underruns).
It appears that all the processing work is being done in a single thread - one of the Pi's CPU cores is fully saturated while the other three aren't doing anything.
Could HackTV be enhanced to do its processing across multiple threads?
Hi,
Can you add Leitch and Nokia line shuffle simulation Support? Leitch was designed for ntsc resolution. The visable lines are scrambled randomly and delayed by a quarter frame. (120 lines) so it should work for pal by incrase the number of lines. Nokia ls 256 is designed for pal, scrambles 256 lines per halfframe and uses the last 2 visable lines per halfframe for vbi signalling. The starting line and the algo for prbs is unknown but this is just a simulation, so who cares.
Thank you.
To satisfy meticulousness I enclose here samples with macrovision signal - just for the sake of completeness. I embed some samples:
Digital MV Remake of Panasonic DVD Recorder in Pass-Thru TBC mode:
Video:
mv.7z.zip
After testing the program using this example: $ hacktv -f 551250000 -m i -g 47 test, i tried to transmit an image like this $ hacktv -f 551250000 -m i -g 47 image.jpg, but it failed, telling me that i was using a depreciated pixel format. and told me that it could not find an audio stream.
Then i tried to test with a video, $ hacktv -f 551250000 -m i -g 47 video.webm but that failed too, the issue seemed to be the video codec.
I also converted the video into a signal using the example $ hacktv -o baseband.bin -m pal video.webm and then tried to transmit it like this $ hacktv -f 551250000 -m i -g 47 baseband.bin but that also failed.
If you could please add an example on how to transmit a video/image and what the requirements are for said video/image, i would be very grateful, my final goal is to be able to use this to stream a video from my webcam, but first a gotta be able to send at least a picture lol
Can you explain, how i can write the r and s values from the syster Encoder to the last line of each field as binary value. (the same way as cryptimages does) e.g: 01 for table1 00000110 for Offset and 10010101 for step as binary black&white pattern? can i use "vbidata_render_nrz()" and if yes, how to implement it?
Thank you.
Hi was wondering since you added NICAM stereo :), how would I use that?, I found nothing in hacktv.c only experimental VSB modulator option (is that nicam)
also was wondering if you will support NICAM dual audio? (I was in indonesia, although they are switching ananlog off Bali still has it and instead of teletext they have Nicam there also in multi-language mode)
also here are the instructions I wrote for myself (because I forget stuff) on how to compile hacktv with Mysys2 (MinGW) on windows
Install FFMpeg-Dev
Install LibHackRF
Compiling LibHackRF
Download Precompiled FFTW: http://fftw.org/install/windows.html
Download libusb1.0: https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.7z
MinGW64/dll (where we need our dll)
git clone https://github.com/mossmann/hackrf.git
Compiling
mkdir host/build
cd host/build
cmake ../ -G "MSYS Makefiles" -DLIBUSB_INCLUDE_DIR=/home/Mitja/libs/libusb/include/libusb-1.0 -DLIBUSB_LIBRARIES=/home/Mitja/libs/libusb/MinGW64/dll/libusb-1.0.dll -DFFTW_LIBRARIES=/home/Mitja/libs/libfftw/fftw
NO cmake ../ -G "MSYS Makefiles" -DLIBUSB_INCLUDE_DIR=../../../../libusb/include/libusb-1.0 -DLIBUSB_LIBRARIES=../../../../libusb/MinGW64/dll/libusb-1.0.dll -DFFTW_LIBRARIES=../../../../libfftw/fftw
make
make install
Compiling HackTV
Modify hackrf.c
rename _close and _write to _closeRF and _writeRF
Modify teletext.c
rename gmtime_r to gmtime_s
NF:-1,CMC California (720p)
http://cmctv.ios.internapcdn.net:80/cmctv_vitalstream_com/live_1/CMC-TV/CCURstream.m3u8
#EXTINF:-1,CMC Country California (480p)
http://cmctv.ios.internapcdn.net:80/cmctv_vitalstream_com/live_1/CMCUSA/CCURstream.m3u8
Example Command to play CMC Country Television on Channel 31 with teletext
hacktv -f 551250000 -m b -G 1 -a -g 47 --teletext teefax http://cmctv.ios.internapcdn.net:80/cmctv_vitalstream_com/live_1/CMCUSA/CCURstream.m3u8
Test card and Teletext from vbit2: vbit2 --dir teefax | hacktv -f 855250000 -g 47 --teletext raw:/dev/stdin test
hope someone will find them usable
Hi !
Awesome work on hacktv!
Can you make a "release" on github to ease the download for the non "github-aware" people interested on this work ?
would be great to get this solved for https://release.debian.org/bullseye/freeze_policy.html
Thanks !
Hi after getting hacktv working on linux I decided to try and compile it for windows since I have a hard time compiling c on windows I decided to try to compile hacktv for windows on linux using mingw cross-compiler
I followed this tutorial: https://arrayfire.com/cross-compile-to-windows-from-linux/
and changed makefile from this
CC=gcc
CFLAGS=-g -Wall -pthread -O3
LDFLAGS=-g -lm -pthread
CFLAGS+=`pkg-config --cflags libavcodec libavformat libswscale libswresample libavutil`
LDFLAGS+=`pkg-config --libs libavcodec libavformat libswscale libswresample libavutil`
CFLAGS+=`pkg-config --cflags libhackrf`
LDFLAGS+=`pkg-config --libs libhackrf`
OBJS=hacktv.o video.o videocrypt.o nicam728.o test.o ffmpeg.o hackrf.o
all: hacktv
hacktv: $(OBJS)
$(CC) -o hacktv $(OBJS) $(LDFLAGS)
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
install:
cp -f hacktv /usr/local/bin/
clean:
rm -f *.o hacktv
to this:
CC=x86_64-w64-mingw32-gcc
CFLAGS=-g -Wall -pthread -O3
LDFLAGS=-g -lm -pthread
CFLAGS+=`pkg-config --cflags libavcodec libavformat libswscale libswresample libavutil`
LDFLAGS+=`pkg-config --libs libavcodec libavformat libswscale libswresample libavutil`
CFLAGS+=`pkg-config --cflags libhackrf`
LDFLAGS+=`pkg-config --libs libhackrf`
OBJS=hacktv.o video.o videocrypt.o nicam728.o test.o ffmpeg.o hackrf.o
all: hacktv
hacktv: $(OBJS)
$(CC) -o hacktv $(OBJS) $(LDFLAGS)
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
install:
cp -f hacktv /usr/local/bin/
clean:
rm -f *.o hacktv
but when running make I get a weird error (it didn't complain about libraries which I assumed):
mitja@ubuntu:~/analog-tv/hacktv$ make
x86_64-w64-mingw32-gcc -g -Wall -pthread -O3 `pkg-config --cflags libavcodec libavformat libswscale libswresample libavutil` `pkg-config --cflags libhackrf` -c hacktv.c -o hacktv.o
In file included from hacktv.c:18:0:
/usr/include/stdio.h:102:19: error: conflicting types for ‘ssize_t’
typedef __ssize_t ssize_t;
^
In file included from /usr/share/mingw-w64/include/stddef.h:7:0,
from /usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/include/stddef.h:1,
from /usr/include/stdio.h:33,
from hacktv.c:18:
/usr/share/mingw-w64/include/crtdefs.h:45:35: note: previous declaration of ‘ssize_t’ was here
__MINGW_EXTENSION typedef __int64 ssize_t;
^
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:132:0,
from /usr/include/stdlib.h:314,
from hacktv.c:19:
/usr/include/time.h:75:18: error: conflicting types for ‘time_t’
typedef __time_t time_t;
^
In file included from /usr/share/mingw-w64/include/stddef.h:7:0,
from /usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/include/stddef.h:1,
from /usr/include/stdio.h:33,
from hacktv.c:18:
/usr/share/mingw-w64/include/crtdefs.h:138:20: note: previous declaration of ‘time_t’ was here
typedef __time64_t time_t;
^
In file included from hacktv.h:21:0,
from hacktv.c:23:
/usr/include/stdint.h:122:27: error: conflicting types for ‘uintptr_t’
typedef unsigned long int uintptr_t;
^
In file included from /usr/share/mingw-w64/include/stddef.h:7:0,
from /usr/lib/gcc/x86_64-w64-mingw32/4.9-win32/include/stddef.h:1,
from /usr/include/stdio.h:33,
from hacktv.c:18:
/usr/share/mingw-w64/include/crtdefs.h:75:44: note: previous declaration of ‘uintptr_t’ was here
__MINGW_EXTENSION typedef unsigned __int64 uintptr_t;
^
In file included from hacktv.h:21:0,
from hacktv.c:23:
/usr/include/stdint.h:145:0: warning: "__INT64_C" redefined
# define __INT64_C(c) c ## L
^
<built-in>: note: this is the location of the previous definition
In file included from hacktv.h:21:0,
from hacktv.c:23:
/usr/include/stdint.h:146:0: warning: "__UINT64_C" redefined
# define __UINT64_C(c) c ## UL
^
<built-in>: note: this is the location of the previous definition
Makefile:20: recipe for target 'hacktv.o' failed
make: *** [hacktv.o] Error 1
I would realy like to compile this for windows because I can't use my HackRF in a VM and its unpractical to boot to linux just to have a play with an awesome project I dream about when I got my HackRF One
Thanks for Anwsering and Best Regards
Hello My Name Is Sick, I Never Found To Read The Raw Output From hacktv, And I See Zcooger To Decode The Raw From HackTV In The Comment On Youtube But Only On Windows
So, Is Possible To Add Option For Example -d , To Decode The Raw Input (Output From HackTV) And The Output Is A Format Readable To Any Players?
Thanks, Sick
This ticket is made to suggest adding vertical blanking test signal (VITS) used to calibrate the image brightness, color, setting proper gain and troubleshot transmission problems.
Some docs here:
https://www.semanticscholar.org/paper/Current-Usage-of-Vertical-Interval-Test-Signals-in-O'Connor/bc793d1eac9efbc02faf1596bde664c5c5d6d426
https://www.tek.com/datasheet/vm700t-option-11
Interlaced snapshots captured from my VHS tapes:
RTL7 example:
Zoomed lines - 37, 38, 39, 40
Canal+ example (with nagravision signals too):
Zoomed lines - 37, 38, 39, 40
TVP2 example:
Zoomed lines - 40, 41, 42, 43
Zoomed lines - 40, 41, 42, 43
TVP1 example:
Zoomed lines - 41, 42, 43, 44
Discovery Channel example (with videocrypt signals too):
Zoomed lines - 41, 42, 43, 44
Hi.
I know some are trying to use this as a System A modulator for 405 lines and sound.
The 405 line system uses positive modulation on AM and audio on AM at 3.5MHz below the vision carrier. In other words two Hack RF devices would be required as System A doesn't have inter carrier sound. Also standards conversion for 405 lines would be required, the Hack RF is not a standards converter so this has to be programmed in the PC.
Hi, i compiled the Version for Windows. It seems that the prbs for cutpoint calculation won't work right. I got an encrypted video, the Decoder locks in but the picture stays scrambled. The Linux compilation works very well.
I live in the states and most if not all the TV's use NTSC. I get a error when using "-m ntsc" rf hackrf_open(): Unsupported mode output type for this device. so I use the "-m m" and it plays the video but its in black and white and no sound or static for audio. I tryed adjusting the sample rate and freq of the channle no go. the Test bars show up ok with command "hacktv --samplerate 9000000 -f 572000000 -m m -g 47 test" on ch 31 in the states. Why is it that any video i play is not clear or has issues? is their something im missing? Any help would be appreciated Thanks
Have tried some things with PAL-FM (Analog sat receiver) and got nothing good out of hacktv. Thanks to captain_jack i made some changes in video.c
.fm_deviation = 6000000, /* kHz */
and
.video_level = 0.51, /* Power level of video */
so i will have a video. But it is too bright. Gamma seems to have no effect to FM Video.
Could an autoplay feature be added? Would like it to play all the videos in my directory.
Or even an EPG styled kind of editor to play a video/clip at a certain time.
Thanks
Here's a idea for the HackTV-thing: Payview III.
I wish I had technical documents but I don't and I dunno where I can find any of this.
According to Wikipedia:
Used by German/Swiss channel Teleclub in the early 1990s, this system employed various methods such as video inversion, modification of synchronization signals, and a pseudo line delay effect.
I dunno if HackTV let alone HackRF can support modification of video signals. I dunno,
NOTE: I have only seen and heard about HackTV on videos around the Internet. I don't have a HackRF. I only got a RTL-SDR.
I had a problem and I put the same and the solution
problem
ffmpeg.c: In function ‘av_ffmpeg_open’:
ffmpeg.c:921:60: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’
if(av->video_stream == NULL && av->format_ctx->streams[i]->codecpar->codec_ty
^
ffmpeg.c:926:72: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’
f(s->audio && av->audio_stream == NULL && av->format_ctx->streams[i]->codecpar-
^
ffmpeg.c:928:33: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’
if(av->format_ctx->streams[i]->codecpar->channels <= 0) continue;
^
ffmpeg.c:960:6: warning: implicit declaration of function ‘avcodec_parameters_to_context’ [-Wimplicit-function-declaration]
if(avcodec_parameters_to_context(av->video_codec_ctx, av->video_stream->codec
^
ffmpeg.c:960:73: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’
(avcodec_parameters_to_context(av->video_codec_ctx, av->video_stream->codecpar)
^
ffmpeg.c:1019:73: error: ‘AVStream {aka struct AVStream}’ has no member named ‘codecpar’
(avcodec_parameters_to_context(av->audio_codec_ctx, av->audio_stream->codecpar)
^
Makefile:32: fallo en las instrucciones para el objetivo 'ffmpeg.o'
make: *** [ffmpeg.o] Error 1
solution
1 sudo add-apt-repository ppa:jonathonf/ffmpeg-3
2 sudo apt update
3 sudo apt-get install ffmpeg
4 sudo apt-get install libavcodec-dev
5 sudo apt-get install libavformat-dev
6 sudo apt-get install libswscale-dev
7 sudo apt-get install libavutil-dev
" -r, --samplerate Set the sample rate in Hz. Default: 16MHz\n" should be -s
Is there any chance to make a videocrypt effect with a key to encrypt and decrypt a real time streaming with ffmpeg?
I also try to find a way to junkcrypt the audio too, thanks
I love the idea of this project but I've been having trouble getting it setup. Is there a simple how to on how to get this running. Maybe what other packages are needed.
Hi I saw you addded Conditional acsess mode for Video Crypt
I am wondering do you need MTV Sample Data or can you generate your own Data
and this Sky Cards do they self destruct after a while or if you have one that was disabled by your SAT provider would it still work
What is inside this card, can I use a normal recent SAT Card or does it have to be Sky (does it need to be old or would a new one (something like this: http://sat-planet.ie/FREESAT-VIEWING-CARD work))
Can you plug SAT Cards into a normal Smart Card reader and write your own Key into it so you can then import into HackTV and have your own SAT Card 😄
Could you maybe explain how Conditional acsess mode works or do you have some links that explain it
In the past I read this: http://web.archive.org/web/20170618002818/http://www.bombshock.com/electronics/cable-descrambling/how-to-decode-pay-tv.html
but it lead to nowhere to be found software
Thanks for Anwsering and forgive my stupidity and Best Regards
The wss-line is added after encryption, so it will be scrambled after decryption and won't detect by tv anymore. It should be added before scrambling.
hello, i can't read the raw form hacktv, to a software in local for example tvtime reading the /dev/video0
is possible? thank Sick!
Hi,
i have an adalm-pluto now and would like to use it with hacktv. How is the syntax for using it?
Does this support SECAM?
It would be more interesting if it did, as the standard is quite obscure and I still don't have any idea how the color is modulated...
This ticket is made to suggest adding VPS/PDC signaling known as the ShowView system.
It uses 16th line on PAL signal only.
Its passive function delivers TV station name to the receiver. Thanks to this signal some of TVs and recorders can tag auto-tuned channels using TV station's name.
The second passive function is to provide information about the start time of a television programme.
The active function broadcasts program ShowView code used by recorders to distinguish start, broadcast break and the end for easier recording. Any broadcast delays are compensated by VPS/PDC.
also I tried to use it with vbit2 on windows like this: vbit2 --dir teefax | hacktv -f 855250000 -g 47 --teletext raw:/dev/stdin test
but windows does not have /dev/stdin so I modified teletext.c from this s->raw = fopen(path + 4, "rb"); into s->raw = fopen(stdin + 4, "rb"); but for some reason hacktv still complains: Unable to initialise video encoder.
and I got some warnings when compiling
teletext.c: In function 'tt_init':
teletext.c:1081:18: warning: passing argument 1 of 'fopen' from incompatible pointer type [-Wincompatible-pointer-types]
s->raw = fopen(stdin + 4, "rb");
^~~~~
In file included from teletext.c:33:0:
C:/msys64/mingw64/x86_64-w64-mingw32/include/stdio.h:600:17: note: expected 'const char * restrict' but argument is of type 'FILE * {aka struct _iobuf *}'
FILE *__cdecl fopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
not sure what I am doing wrong here
Originally posted by @veso266 in #14 (comment)
I'm not sure how I would go about buffering the video in a livestream
...and compile it for Windows... I run on errors while compiling it (FFMPEG, LIBHACKRF)
Thank you.
System Info:
System: Host: MINT-PORTABLE Kernel: 4.15.0-36-generic x86_64 bits: 64 gcc: 7.3.0
Desktop: Cinnamon 3.8.9 (Gtk 3.22.30-1ubuntu1) dm: lightdm Distro: Linux Mint 19 Tara
Machine: Device: laptop System: LENOVO product: 24295XG v: ThinkPad T530 serial: N/A
Mobo: LENOVO model: 24295XG serial: N/A
UEFI [Legacy]: LENOVO v: G4ETB3WW (2.73 ) date: 06/11/2018
Chassis: type: 10 serial: N/A
Battery BAT0: charge: 44.5 Wh 99.9% condition: 44.5/85.9 Wh (52%) volts: 12.2/10.8
model: SANYO 45N1173 serial: <filter>status: Full
CPU: Dual core Intel Core i7-3520M (-MT-MCP-) arch: Ivy Bridge rev.9 cache: 4096 KB
flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 11574
clock speeds: min/max: 1200/3600 MHz 1: 1197 MHz 2: 1197 MHz 3: 1197 MHz 4: 1198 MHz
Graphics: Card-1: Intel 3rd Gen Core processor Graphics Controller bus-ID: 00:02.0 chip-ID: 8086:0166
Card-2: NVIDIA GF108M [NVS 5400M] bus-ID: 01:00.0 chip-ID: 10de:0def
Display Server: x11 (X.Org 1.19.6 )
drivers: modesetting,nvidia (unloaded: fbdev,vesa,nouveau)
Resolution: [email protected]
OpenGL: renderer: N/A version: N/A Direct Render: N/A
Audio: Card Intel 7 Series/C216 Family High Def. Audio Controller
driver: snd_hda_intel bus-ID: 00:1b.0 chip-ID: 8086:1e20
Sound: Advanced Linux Sound Architecture v: k4.15.0-36-generic
Network: Card-1: Intel 82579LM Gigabit Network Connection
driver: e1000e v: 3.2.6-k port: 7080 bus-ID: 00:19.0 chip-ID: 8086:1502
IF: enp0s25 state: up speed: 100 Mbps duplex: full mac: <filter>
Card-2: Intel Centrino Advanced-N 6205 [Taylor Peak]
driver: iwlwifi bus-ID: 03:00.0 chip-ID: 8086:0085
IF: wlp3s0 state: down mac: <filter>
Drives: HDD Total Size: 870.2GB (32.5% used)
ID-1: /dev/mmcblk0 model: N/A size: 1.0GB serial: <filter>
ID-2: /dev/sda model: Corsair_Force_LE size: 120.0GB serial: <filter>
ID-3: USB /dev/sdb model: MK7559GSM size: 750.2GB serial: <filter>
Partition: ID-1: / size: 19G used: 9.4G (54%) fs: ext4 dev: /dev/sdb5
ID-2: /home size: 208G used: 11G (6%) fs: ext4 dev: /dev/sdb7
ID-3: swap-1 size: 2.05GB used: 0.00GB (0%) fs: swap dev: /dev/sdb6
RAID: System: supported: N/A
No RAID devices: /proc/mdstat, md_mod kernel module present
Unused Devices: none
Sensors: System Temperatures: cpu: 54.0C mobo: N/A gpu: 0.0:53C
Fan Speeds (in rpm): cpu: 2388
Repos: Active apt sources in file: /etc/apt/sources.list.d/official-package-repositories.list
deb http: //mirrors.evowise.com/linuxmint/packages tara main upstream import backport
deb http: //ubuntu.mirror.true.nl/ubuntu bionic main restricted universe multiverse
deb http: //ubuntu.mirror.true.nl/ubuntu bionic-updates main restricted universe multiverse
deb http: //ubuntu.mirror.true.nl/ubuntu bionic-backports main restricted universe multiverse
deb http: //security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
deb http: //archive.canonical.com/ubuntu/ bionic partner
Active apt sources in file: /etc/apt/sources.list.d/spotify.list
deb http: //repository.spotify.com stable non-free
Info: Processes: 239 Uptime: 54 min Memory: 1739.6/3645.5MB
Init: systemd v: 237 runlevel: 5 Gcc sys: 7.3.0 Client: Unknown python3.6 client inxi: 2.3.56
Log:
zcooger@MINT-PORTABLE:~/Desktop/hacktv-master$ sudo ./build_win64.sh
[sudo] password for zcooger:
+ HOST=x86_64-w64-mingw32
++ pwd
+ PREFIX=/home/zcooger/Desktop/hacktv-master/build_win64/install_root
+ export PKG_CONFIG_PATH=/home/zcooger/Desktop/hacktv-master/build_win64/install_root/lib/pkgconfig
+ PKG_CONFIG_PATH=/home/zcooger/Desktop/hacktv-master/build_win64/install_root/lib/pkgconfig
+ mkdir -p /home/zcooger/Desktop/hacktv-master/build_win64/install_root
+ cd build_win64
+ [[ ! -f /home/zcooger/Desktop/hacktv-master/build_win64/install_root/lib/libusb-1.0.a ]]
+ [[ ! -f libusb-1.0.22.tar.bz2 ]]
+ wget https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2
--2019-02-12 15:33:24-- https://github.com/libusb/libusb/releases/download/v1.0.22/libusb-1.0.22.tar.bz2
Resolving github.com (github.com)... 140.82.118.4, 140.82.118.3
Connecting to github.com (github.com)|140.82.118.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/15120676/52ad2e32-2f90-11e8-8b78-f2ee838f3d05?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190212%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190212T143324Z&X-Amz-Expires=300&X-Amz-Signature=ffac22754fdd53f445ae341ce720f84f61ea94bbd562429843f6bbeb6053722b&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dlibusb-1.0.22.tar.bz2&response-content-type=application%2Foctet-stream [following]
--2019-02-12 15:33:24-- https://github-production-release-asset-2e65be.s3.amazonaws.com/15120676/52ad2e32-2f90-11e8-8b78-f2ee838f3d05?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190212%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190212T143324Z&X-Amz-Expires=300&X-Amz-Signature=ffac22754fdd53f445ae341ce720f84f61ea94bbd562429843f6bbeb6053722b&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dlibusb-1.0.22.tar.bz2&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.163.59
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.163.59|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 598833 (585K) [application/octet-stream]
Saving to: ‘libusb-1.0.22.tar.bz2’
libusb-1.0.22.tar.b 100%[===================>] 584,80K 798KB/s in 0,7s
2019-02-12 15:33:25 (798 KB/s) - ‘libusb-1.0.22.tar.bz2’ saved [598833/598833]
+ tar -xvjf libusb-1.0.22.tar.bz2
libusb-1.0.22/
libusb-1.0.22/tests/
libusb-1.0.22/tests/Makefile.am
libusb-1.0.22/tests/testlib.c
libusb-1.0.22/tests/libusb_testlib.h
libusb-1.0.22/tests/stress.c
libusb-1.0.22/tests/Makefile.in
libusb-1.0.22/android/
libusb-1.0.22/android/README
libusb-1.0.22/android/config.h
libusb-1.0.22/android/jni/
libusb-1.0.22/android/jni/Android.mk
libusb-1.0.22/android/jni/examples.mk
libusb-1.0.22/android/jni/Application.mk
libusb-1.0.22/android/jni/libusb.mk
libusb-1.0.22/android/jni/tests.mk
libusb-1.0.22/Xcode/
libusb-1.0.22/Xcode/release.xcconfig
libusb-1.0.22/Xcode/libusb_debug.xcconfig
libusb-1.0.22/Xcode/libusb.xcconfig
libusb-1.0.22/Xcode/config.h
libusb-1.0.22/Xcode/libusb_release.xcconfig
libusb-1.0.22/Xcode/common.xcconfig
libusb-1.0.22/Xcode/debug.xcconfig
libusb-1.0.22/Xcode/libusb.xcodeproj/
libusb-1.0.22/Xcode/libusb.xcodeproj/project.pbxproj
libusb-1.0.22/README
libusb-1.0.22/depcomp
libusb-1.0.22/m4/
libusb-1.0.22/m4/libtool.m4
libusb-1.0.22/m4/ltsugar.m4
libusb-1.0.22/m4/ltoptions.m4
libusb-1.0.22/m4/ltversion.m4
libusb-1.0.22/m4/lt~obsolete.m4
libusb-1.0.22/msvc/
libusb-1.0.22/msvc/appveyor.bat
libusb-1.0.22/msvc/listdevs_2010.vcxproj
libusb-1.0.22/msvc/libusb_dll_2017.vcxproj
libusb-1.0.22/msvc/libusb_dll_2010.vcxproj
libusb-1.0.22/msvc/stress_2005.vcproj
libusb-1.0.22/msvc/libusb_dll_2012.vcxproj
libusb-1.0.22/msvc/xusb_2012.vcxproj
libusb-1.0.22/msvc/libusb_dll_2005.vcproj
libusb-1.0.22/msvc/ddk_build.cmd
libusb-1.0.22/msvc/libusb_2005.sln
libusb-1.0.22/msvc/libusb_2010.sln
libusb-1.0.22/msvc/fxload_2013.vcxproj
libusb-1.0.22/msvc/testlibusb_2017.vcxproj
libusb-1.0.22/msvc/getopt_2005.vcproj
libusb-1.0.22/msvc/listdevs_2013.vcxproj
libusb-1.0.22/msvc/getopt_2017.vcxproj
libusb-1.0.22/msvc/listdevs_wince.vcproj
libusb-1.0.22/msvc/testlibusb_2010.vcxproj
libusb-1.0.22/msvc/libusb_dll_wince.vcproj
libusb-1.0.22/msvc/missing.h
libusb-1.0.22/msvc/xusb_2005.vcproj
libusb-1.0.22/msvc/libusb_wince.sln
libusb-1.0.22/msvc/config.h
libusb-1.0.22/msvc/xusb.dsp
libusb-1.0.22/msvc/stress_2013.vcxproj
libusb-1.0.22/msvc/fxload_2012.vcxproj
libusb-1.0.22/msvc/libusb_static_2010.vcxproj
libusb-1.0.22/msvc/listdevs_2015.vcxproj
libusb-1.0.22/msvc/testlibusb_2015.vcxproj
libusb-1.0.22/msvc/libusb_dll.dsp
libusb-1.0.22/msvc/listdevs_sources
libusb-1.0.22/msvc/listdevs_2005.vcproj
libusb-1.0.22/msvc/libusb_static_2017.vcxproj
libusb-1.0.22/msvc/hotplugtest_2017.vcxproj
libusb-1.0.22/msvc/stress_2015.vcxproj
libusb-1.0.22/msvc/hotplugtest_2010.vcxproj
libusb-1.0.22/msvc/getopt_2010.vcxproj
libusb-1.0.22/msvc/listdevs_2017.vcxproj
libusb-1.0.22/msvc/stress_2010.vcxproj
libusb-1.0.22/msvc/fxload_sources
libusb-1.0.22/msvc/libusb_dll_2015.vcxproj
libusb-1.0.22/msvc/libusb_2012.sln
libusb-1.0.22/msvc/listdevs.dsp
libusb-1.0.22/msvc/errno.h
libusb-1.0.22/msvc/libusb_static_2012.vcxproj
libusb-1.0.22/msvc/stress_sources
libusb-1.0.22/msvc/xusb_2015.vcxproj
libusb-1.0.22/msvc/listdevs_2012.vcxproj
libusb-1.0.22/msvc/stress_2012.vcxproj
libusb-1.0.22/msvc/fxload_2010.vcxproj
libusb-1.0.22/msvc/libusb_2017.sln
libusb-1.0.22/msvc/xusb_2010.vcxproj
libusb-1.0.22/msvc/libusb_static_2013.vcxproj
libusb-1.0.22/msvc/inttypes.h
libusb-1.0.22/msvc/hotplugtest_2012.vcxproj
libusb-1.0.22/msvc/xusb_2017.vcxproj
libusb-1.0.22/msvc/stress_wince.vcproj
libusb-1.0.22/msvc/hotplugtest_sources
libusb-1.0.22/msvc/xusb_2013.vcxproj
libusb-1.0.22/msvc/hotplugtest_2013.vcxproj
libusb-1.0.22/msvc/libusb_dll_2013.vcxproj
libusb-1.0.22/msvc/libusb_static.dsp
libusb-1.0.22/msvc/libusb_static_2005.vcproj
libusb-1.0.22/msvc/xusb_wince.vcproj
libusb-1.0.22/msvc/hotplugtest_2015.vcxproj
libusb-1.0.22/msvc/testlibusb_2013.vcxproj
libusb-1.0.22/msvc/getopt_2013.vcxproj
libusb-1.0.22/msvc/stdint.h
libusb-1.0.22/msvc/testlibusb_2012.vcxproj
libusb-1.0.22/msvc/libusb_sources
libusb-1.0.22/msvc/xusb_sources
libusb-1.0.22/msvc/missing.c
libusb-1.0.22/msvc/libusb_2015.sln
libusb-1.0.22/msvc/libusb_static_2015.vcxproj
libusb-1.0.22/msvc/libusb_2013.sln
libusb-1.0.22/msvc/getopt_sources
libusb-1.0.22/msvc/fxload_2017.vcxproj
libusb-1.0.22/msvc/getopt_2015.vcxproj
libusb-1.0.22/msvc/fxload_2015.vcxproj
libusb-1.0.22/msvc/libusb_static_wince.vcproj
libusb-1.0.22/msvc/stress_2017.vcxproj
libusb-1.0.22/msvc/getopt_2012.vcxproj
libusb-1.0.22/msvc/testlibusb_sources
libusb-1.0.22/msvc/libusb.dsw
libusb-1.0.22/install-sh
libusb-1.0.22/Makefile.am
libusb-1.0.22/config.h.in
libusb-1.0.22/TODO
libusb-1.0.22/config.sub
libusb-1.0.22/aclocal.m4
libusb-1.0.22/config.guess
libusb-1.0.22/examples/
libusb-1.0.22/examples/dpfp.c
libusb-1.0.22/examples/fxload.c
libusb-1.0.22/examples/ezusb.h
libusb-1.0.22/examples/Makefile.am
libusb-1.0.22/examples/listdevs.c
libusb-1.0.22/examples/sam3u_benchmark.c
libusb-1.0.22/examples/dpfp_threaded.c
libusb-1.0.22/examples/getopt/
libusb-1.0.22/examples/getopt/getopt1.c
libusb-1.0.22/examples/getopt/getopt.c
libusb-1.0.22/examples/getopt/getopt.h
libusb-1.0.22/examples/hotplugtest.c
libusb-1.0.22/examples/testlibusb.c
libusb-1.0.22/examples/ezusb.c
libusb-1.0.22/examples/xusb.c
libusb-1.0.22/examples/Makefile.in
libusb-1.0.22/INSTALL
libusb-1.0.22/ChangeLog
libusb-1.0.22/NEWS
libusb-1.0.22/AUTHORS
libusb-1.0.22/missing
libusb-1.0.22/libusb-1.0.pc.in
libusb-1.0.22/ltmain.sh
libusb-1.0.22/configure.ac
libusb-1.0.22/PORTING
libusb-1.0.22/COPYING
libusb-1.0.22/libusb/
libusb-1.0.22/libusb/strerror.c
libusb-1.0.22/libusb/version.h
libusb-1.0.22/libusb/libusb-1.0.rc
libusb-1.0.22/libusb/libusb-1.0.def
libusb-1.0.22/libusb/os/
libusb-1.0.22/libusb/os/windows_winusb.h
libusb-1.0.22/libusb/os/windows_common.h
libusb-1.0.22/libusb/os/windows_nt_shared_types.h
libusb-1.0.22/libusb/os/wince_usb.c
libusb-1.0.22/libusb/os/threads_posix.c
libusb-1.0.22/libusb/os/haiku_pollfs.cpp
libusb-1.0.22/libusb/os/poll_windows.c
libusb-1.0.22/libusb/os/wince_usb.h
libusb-1.0.22/libusb/os/threads_windows.c
libusb-1.0.22/libusb/os/windows_usbdk.c
libusb-1.0.22/libusb/os/openbsd_usb.c
libusb-1.0.22/libusb/os/netbsd_usb.c
libusb-1.0.22/libusb/os/windows_usbdk.h
libusb-1.0.22/libusb/os/haiku_usb_raw.cpp
libusb-1.0.22/libusb/os/linux_netlink.c
libusb-1.0.22/libusb/os/threads_posix.h
libusb-1.0.22/libusb/os/haiku_usb.h
libusb-1.0.22/libusb/os/poll_posix.c
libusb-1.0.22/libusb/os/haiku_usb_raw.h
libusb-1.0.22/libusb/os/poll_posix.h
libusb-1.0.22/libusb/os/darwin_usb.c
libusb-1.0.22/libusb/os/haiku_usb_backend.cpp
libusb-1.0.22/libusb/os/windows_winusb.c
libusb-1.0.22/libusb/os/linux_usbfs.h
libusb-1.0.22/libusb/os/linux_usbfs.c
libusb-1.0.22/libusb/os/windows_nt_common.h
libusb-1.0.22/libusb/os/sunos_usb.c
libusb-1.0.22/libusb/os/darwin_usb.h
libusb-1.0.22/libusb/os/poll_windows.h
libusb-1.0.22/libusb/os/threads_windows.h
libusb-1.0.22/libusb/os/windows_nt_common.c
libusb-1.0.22/libusb/os/linux_udev.c
libusb-1.0.22/libusb/os/sunos_usb.h
libusb-1.0.22/libusb/hotplug.h
libusb-1.0.22/libusb/sync.c
libusb-1.0.22/libusb/Makefile.am
libusb-1.0.22/libusb/core.c
libusb-1.0.22/libusb/hotplug.c
libusb-1.0.22/libusb/libusbi.h
libusb-1.0.22/libusb/version_nano.h
libusb-1.0.22/libusb/descriptor.c
libusb-1.0.22/libusb/io.c
libusb-1.0.22/libusb/libusb.h
libusb-1.0.22/libusb/Makefile.in
libusb-1.0.22/compile
libusb-1.0.22/Makefile.in
libusb-1.0.22/configure
libusb-1.0.22/doc/
libusb-1.0.22/doc/Makefile.am
libusb-1.0.22/doc/doxygen.cfg.in
libusb-1.0.22/doc/Makefile.in
+ cd libusb-1.0.22
+ ./configure --host=x86_64-w64-mingw32 --prefix=/home/zcooger/Desktop/hacktv-master/build_win64/install_root --enable-static --disable-shared
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for x86_64-w64-mingw32-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for x86_64-w64-mingw32-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for x86_64-w64-mingw32-g++... no
checking for x86_64-w64-mingw32-c++... no
checking for x86_64-w64-mingw32-gpp... no
checking for x86_64-w64-mingw32-aCC... no
checking for x86_64-w64-mingw32-CC... no
checking for x86_64-w64-mingw32-cxx... no
checking for x86_64-w64-mingw32-cc++... no
checking for x86_64-w64-mingw32-cl.exe... no
checking for x86_64-w64-mingw32-FCC... no
checking for x86_64-w64-mingw32-KCC... no
checking for x86_64-w64-mingw32-RCC... no
checking for x86_64-w64-mingw32-xlC_r... no
checking for x86_64-w64-mingw32-xlC... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-w64-mingw32
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... no
checking for x86_64-w64-mingw32-dumpbin... no
checking for x86_64-w64-mingw32-link... no
checking for dumpbin... no
checking for link... link -dump
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-w64-mingw32 format... func_convert_file_nix_to_w32
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for x86_64-w64-mingw32-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for x86_64-w64-mingw32-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... func_cygming_dll_for_implib_fallback
checking for x86_64-w64-mingw32-ar... no
checking for ar... ar
checking for archiver @FILE support... @
checking for x86_64-w64-mingw32-strip... strip
checking for x86_64-w64-mingw32-ranlib... no
checking for ranlib... ranlib
checking command to parse nm output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-w64-mingw32-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC
checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking for x86_64-w64-mingw32-windres... no
checking for windres... no
checking for inline... inline
checking operating system... Windows
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking whether TFD_NONBLOCK is declared... yes
checking whether TFD_CLOEXEC is declared... yes
checking whether to use timerfd for timing... yes
checking for pipe2... yes
checking for struct timespec... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sigaction... yes
checking whether CC supports -std=gnu99... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libusb-1.0.pc
config.status: creating Makefile
config.status: creating libusb/Makefile
config.status: creating examples/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating doc/doxygen.cfg
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
+ make -j4 install
Making install in libusb
make[1]: Entering directory '/home/zcooger/Desktop/hacktv-master/build_win64/libusb-1.0.22/libusb'
CC libusb_1_0_la-io.lo
CC libusb_1_0_la-hotplug.lo
CC libusb_1_0_la-core.lo
CC libusb_1_0_la-descriptor.lo
In file included from libusbi.h:284:0,
from hotplug.c:33:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from libusbi.h:284:0,
from io.c:37:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
In file included from libusbi.h:284:0,
from descriptor.c:29:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
In file included from libusbi.h:284:0,
from core.c:44:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
In file included from libusbi.h:565:0,
from hotplug.c:33:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
In file included from libusbi.h:565:0,
from io.c:37:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
io.c: In function ‘usbi_io_init’:
io.c:1164:2: error: implicit declaration of function ‘close’; did you mean ‘clock’? [-Werror=implicit-function-declaration]
close(ctx->timerfd);
^~~~~
clock
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
In file included from libusbi.h:565:0,
from core.c:44:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
In file included from libusbi.h:565:0,
from descriptor.c:29:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
Makefile:657: recipe for target 'libusb_1_0_la-hotplug.lo' failed
make[1]: *** [libusb_1_0_la-hotplug.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:650: recipe for target 'libusb_1_0_la-descriptor.lo' failed
make[1]: *** [libusb_1_0_la-descriptor.lo] Error 1
Makefile:664: recipe for target 'libusb_1_0_la-io.lo' failed
make[1]: *** [libusb_1_0_la-io.lo] Error 1
Makefile:643: recipe for target 'libusb_1_0_la-core.lo' failed
make[1]: *** [libusb_1_0_la-core.lo] Error 1
make[1]: Leaving directory '/home/zcooger/Desktop/hacktv-master/build_win64/libusb-1.0.22/libusb'
Makefile:476: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
zcooger@MINT-PORTABLE:~/Desktop/hacktv-master$
Second attempt:
zcooger@MINT-PORTABLE:~/Desktop/hacktv-master$ sudo ./build_win64.sh
[sudo] password for zcooger:
+ HOST=x86_64-w64-mingw32
++ pwd
+ PREFIX=/home/zcooger/Desktop/hacktv-master/build_win64/install_root
+ export PKG_CONFIG_PATH=/home/zcooger/Desktop/hacktv-master/build_win64/install_root/lib/pkgconfig
+ PKG_CONFIG_PATH=/home/zcooger/Desktop/hacktv-master/build_win64/install_root/lib/pkgconfig
+ mkdir -p /home/zcooger/Desktop/hacktv-master/build_win64/install_root
+ cd build_win64
+ [[ ! -f /home/zcooger/Desktop/hacktv-master/build_win64/install_root/lib/libusb-1.0.a ]]
+ [[ ! -f libusb-1.0.22.tar.bz2 ]]
+ cd libusb-1.0.22
+ ./configure --host=x86_64-w64-mingw32 --prefix=/home/zcooger/Desktop/hacktv-master/build_win64/install_root --enable-static --disable-shared
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for x86_64-w64-mingw32-strip... no
checking for strip... strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for x86_64-w64-mingw32-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for x86_64-w64-mingw32-g++... no
checking for x86_64-w64-mingw32-c++... no
checking for x86_64-w64-mingw32-gpp... no
checking for x86_64-w64-mingw32-aCC... no
checking for x86_64-w64-mingw32-CC... no
checking for x86_64-w64-mingw32-cxx... no
checking for x86_64-w64-mingw32-cc++... no
checking for x86_64-w64-mingw32-cl.exe... no
checking for x86_64-w64-mingw32-FCC... no
checking for x86_64-w64-mingw32-KCC... no
checking for x86_64-w64-mingw32-RCC... no
checking for x86_64-w64-mingw32-xlC_r... no
checking for x86_64-w64-mingw32-xlC... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-w64-mingw32
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... no
checking for x86_64-w64-mingw32-dumpbin... no
checking for x86_64-w64-mingw32-link... no
checking for dumpbin... no
checking for link... link -dump
checking the name lister (nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-w64-mingw32 format... func_convert_file_nix_to_w32
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for x86_64-w64-mingw32-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for x86_64-w64-mingw32-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... func_cygming_dll_for_implib_fallback
checking for x86_64-w64-mingw32-ar... no
checking for ar... ar
checking for archiver @FILE support... @
checking for x86_64-w64-mingw32-strip... strip
checking for x86_64-w64-mingw32-ranlib... no
checking for ranlib... ranlib
checking command to parse nm output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-w64-mingw32-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -DDLL_EXPORT -DPIC
checking if g++ PIC flag -DDLL_EXPORT -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking for x86_64-w64-mingw32-windres... no
checking for windres... no
checking for inline... inline
checking operating system... Windows
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking whether TFD_NONBLOCK is declared... yes
checking whether TFD_CLOEXEC is declared... yes
checking whether to use timerfd for timing... yes
checking for pipe2... yes
checking for struct timespec... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sigaction... yes
checking whether CC supports -std=gnu99... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating libusb-1.0.pc
config.status: creating Makefile
config.status: creating libusb/Makefile
config.status: creating examples/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating doc/doxygen.cfg
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
+ make -j4 install
Making install in libusb
make[1]: Entering directory '/home/zcooger/Desktop/hacktv-master/build_win64/libusb-1.0.22/libusb'
CC libusb_1_0_la-core.lo
CC libusb_1_0_la-io.lo
CC libusb_1_0_la-hotplug.lo
CC libusb_1_0_la-descriptor.lo
In file included from libusbi.h:284:0,
from descriptor.c:29:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
In file included from libusbi.h:284:0,
from io.c:37:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
In file included from libusbi.h:284:0,
from hotplug.c:33:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
In file included from libusbi.h:284:0,
from core.c:44:
os/threads_windows.h:28:18: error: unknown type name ‘LONG’
typedef volatile LONG usbi_mutex_static_t;
^~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_static_unlock’:
os/threads_windows.h:33:2: error: implicit declaration of function ‘InterlockedExchange’ [-Werror=implicit-function-declaration]
InterlockedExchange(mutex, 0L);
^~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:36:9: error: unknown type name ‘CRITICAL_SECTION’
typedef CRITICAL_SECTION usbi_mutex_t;
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_init’:
os/threads_windows.h:39:2: error: implicit declaration of function ‘InitializeCriticalSection’ [-Werror=implicit-function-declaration]
InitializeCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_lock’:
os/threads_windows.h:44:2: error: implicit declaration of function ‘EnterCriticalSection’ [-Werror=implicit-function-declaration]
EnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_unlock’:
os/threads_windows.h:48:2: error: implicit declaration of function ‘LeaveCriticalSection’ [-Werror=implicit-function-declaration]
LeaveCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_trylock’:
os/threads_windows.h:52:10: error: implicit declaration of function ‘TryEnterCriticalSection’ [-Werror=implicit-function-declaration]
return !TryEnterCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
In file included from libusbi.h:565:0,
from descriptor.c:29:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
os/threads_windows.h: In function ‘usbi_mutex_destroy’:
os/threads_windows.h:56:2: error: implicit declaration of function ‘DeleteCriticalSection’ [-Werror=implicit-function-declaration]
DeleteCriticalSection(mutex);
^~~~~~~~~~~~~~~~~~~~~
os/threads_windows.h: At top level:
os/threads_windows.h:88:9: error: unknown type name ‘DWORD’
typedef DWORD usbi_tls_key_t;
^~~~~
In file included from libusbi.h:565:0,
from io.c:37:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_create’:
os/threads_windows.h:91:9: error: implicit declaration of function ‘TlsAlloc’; did you mean ‘valloc’? [-Werror=implicit-function-declaration]
*key = TlsAlloc();
^~~~~~~~
valloc
io.c: In function ‘usbi_io_init’:
io.c:1164:2: error: implicit declaration of function ‘close’; did you mean ‘clock’? [-Werror=implicit-function-declaration]
close(ctx->timerfd);
^~~~~
clock
os/threads_windows.h: In function ‘usbi_tls_key_get’:
os/threads_windows.h:95:9: error: implicit declaration of function ‘TlsGetValue’ [-Werror=implicit-function-declaration]
return TlsGetValue(key);
^~~~~~~~~~~
os/threads_windows.h:95:9: warning: return makes pointer from integer without a cast [-Wint-conversion]
return TlsGetValue(key);
^~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_set’:
os/threads_windows.h:99:8: error: implicit declaration of function ‘TlsSetValue’ [-Werror=implicit-function-declaration]
(void)TlsSetValue(key, ptr);
^~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
os/threads_windows.h: In function ‘usbi_tls_key_delete’:
os/threads_windows.h:103:8: error: implicit declaration of function ‘TlsFree’ [-Werror=implicit-function-declaration]
(void)TlsFree(key);
^~~~~~~
In file included from libusbi.h:565:0,
from hotplug.c:33:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
os/threads_windows.h: In function ‘usbi_get_tid’:
os/threads_windows.h:108:14: error: implicit declaration of function ‘GetCurrentThreadId’ [-Werror=implicit-function-declaration]
return (int)GetCurrentThreadId();
^~~~~~~~~~~~~~~~~~
In file included from libusbi.h:565:0,
from core.c:44:
os/poll_windows.h: At top level:
os/poll_windows.h:61:2: error: unknown type name ‘OVERLAPPED’
OVERLAPPED *overlapped; // what will report our I/O status
^~~~~~~~~~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
Makefile:657: recipe for target 'libusb_1_0_la-hotplug.lo' failed
make[1]: *** [libusb_1_0_la-hotplug.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:650: recipe for target 'libusb_1_0_la-descriptor.lo' failed
make[1]: *** [libusb_1_0_la-descriptor.lo] Error 1
cc1: some warnings being treated as errors
Makefile:664: recipe for target 'libusb_1_0_la-io.lo' failed
make[1]: *** [libusb_1_0_la-io.lo] Error 1
cc1: some warnings being treated as errors
Makefile:643: recipe for target 'libusb_1_0_la-core.lo' failed
make[1]: *** [libusb_1_0_la-core.lo] Error 1
make[1]: Leaving directory '/home/zcooger/Desktop/hacktv-master/build_win64/libusb-1.0.22/libusb'
Makefile:476: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
zcooger@MINT-PORTABLE:~/Desktop/hacktv-master$
I was wondering if it would be possible to add RAW Teletext imput into stdpipe like rasp-teletext is doing: https://github.com/ali1234/raspi-teletext
https://github.com/ali1234/raspi-teletext/blob/master/teletext.c#L154
https://github.com/ali1234/raspi-teletext/blob/master/buffer.c#L78 //read_packets() is here
so I could use https://github.com/peterkvt80/vbit2 to generate Teletext Data from tti files and then teletext.c to just modulate them
maybe you could also borrow some code from raspi-teletext to add Closed-Captions support for NTSC: https://en.wikipedia.org/wiki/EIA-608
https://github.com/ali1234/raspi-teletext/blob/master/cea608.c
also don't forget the RAW imput so I can use https://github.com/peterkvt80/newfor-subtitles to generate CC and your teletext.c to modulate them
PS: Maybe add PAL D/K and PAL L?
Hello,
I notice that there is no technical/developer documentation for hackTV, the only documentation is a short readme file.
This can be a problem when a developer wants to understand how the software works, or join the team, or fork or re-use some of the hacktv algorithms in his own software.
Doxygen is a tool for building documentation and could be a solution :
https://en.wikipedia.org/wiki/Doxygen
A more general documentation (wiki, pdf file) is also a solution, in order to explain the algorithms, the pal/secam/ntsc color theory, the fm/am modulation, how hackTV uses external library (gnu-radio, ffmpeg) etc...
Another way to increase the value and the maintainability of hackTV : put its features (SDR, pal/secam/ntsc signal generation) in a library, an API, that can be called by other softwares.
While playing NTSC video through the HackTV, the video "lags" behind the audio by an increasing amount as the video is playing. Not sure if it is a FFmpeg problem, computer problem, PEBKAC, or just a problem with my particular HackRF. Unfortunately, I have no experience coding, so I can't really help, sorry.
But thanks for having a wonderful "turn-key" solution; it is nice to find a use for that old GoldStar.
When i tried to apt-get the requirements on Raspbian Jessie, the following came up:
sudo apt-get install libavutil-dev libswresample-dev libswscale-dev libavformat-dev libavcodec-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libswresample-dev
While trying to build on raspberry pi 3 the following issue appeared:
gcc -o hacktv hacktv.o fir.o vbidata.o teletext.o wss.o video.o videocrypt.o syster.o nicam728.o test.o ffmpeg.o file.o hackrf.o -g -lm -pthread -L/usr/local/lib -lavformat -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lasound -lx264 -lpthread -lm -llzma -lbz2 -lz -pthread -lavcodec -lxcb -lxcb-shm -lxcb -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lxcb-shape -lxcb -lasound -lx264 -lpthread -lm -llzma -lbz2 -lz -pthread -lswscale -lm -lswresample -lm -lavutil -lm -lhackrf
/usr/bin/ld: cannot find -llzma
/usr/bin/ld: cannot find -lbz2
collect2: error: ld returned 1 exit status
Makefile:21: recipe for target 'hacktv' failed
make: *** [hacktv] Error 1
is there any way to work around this?
Hello. This ticket is made to suggest adding closed captioning signal (EIA-608) used to broadcast subtitles for the transmission in NTSC system.
LD-Decode guys announce support for decoding the CC data: https://www.facebook.com/groups/2070493199906024/permalink/2345606389061369/
Example capture of NTSC subtitles in the picture: https://www.youtube.com/watch?v=I0y_BjqE26A
Technology Connections CC history video: https://www.youtube.com/watch?v=6SL6zs2bDks
Technical data: https://en.wikipedia.org/wiki/EIA-608
Hello,
I notice that when we type "hacktv --help" then the output will not show the full features of hacktv,
for example if the user has not yet bought or connected a fl2k device then the "--help" command will not show the fl2k options, it's because Fsphill has restricted the information by adding a "#ifdef HAVE_FL2K" statement in hacktv.c file (line 123) :
https://github.com/fsphil/hacktv/blob/master/hacktv.c
I think it's a mistake, because usually a help file must by default show all options/features of the software, there is no need to restrict the information, a user must know all features of the software, especially if there is no PDF/html documentation,
I notice also that the readme file on github page doesn't mention the fl2k feature.
Here is in attached file what the user can read if he types the help command hacktv-help.txt
you think you could add Zweikanaltone (A2 Stereo): https://en.wikipedia.org/wiki/Zweikanalton
PS: do you think you could add clock and date and name of the station to Philips PM5544 Test Card? (something like this: https://www.youtube.com/watch?v=KUenRyt5u5Y)
Thanks for Anwsering and Best Regards
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.