Commit Graph

34 Commits

Author SHA1 Message Date
Willem Melching 760564da61 replay: use VideoToolbox HW decoder on Mac (#23832)
* replay: support VideoToolbox HW decoding

* rename flag

* remove debug assert
old-commit-hash: dc7de79dc9d546465030acab1df1d9cc36e1d4d6
2022-02-23 13:52:50 +01:00
Willem Melching d4f372cfd7 Update raw_logger/framereader to new new ffmpeg api (#23799)
* Update raw_logger/framereader to new new ffmpeg api

* Can be removed now

* Handled by avcodec_free_context

* handle EAGAIN and clean up
old-commit-hash: 724bab8ef3aaad2c69b53fafc68f7afa0ebbe659
2022-02-21 16:39:32 +01:00
Dean Lee 99198156e3 log error on avcodec_receive_frame (#23649)
old-commit-hash: a901104a96b3df7131d7ff7b0dac490e230bf6b5
2022-01-27 19:35:18 -08:00
Dean Lee c8b528e850 replay: ncurses GUI (#23608)
* initial version

* print all message's in ncurses window

* show download progress bar

* move all to class ConsoleUI

* timeline

* improve timeline&stats

* fix logMessage

* add warning indicator

* continue

* cleanup

* cast type to int

* simplify seekToFlag

* more

* <=

* handle enter

* add box to logging window

* fix multiple threads problem

* fix concurrency issues

* draw indicator

* many improvements

* more

* fix multipe threads logging

* stop replay before exit

* use lambda instead of std::bind

* cleanup

* small cleanup

* use carFingerPrint

* don't emit signal in replay::stream

* merge car_events into timeline

* cleanup DonloadStats

* cleanup

* rename carname to carFingerprint

* improve alert

* add comments

* add help functions

templete function

* handle term resize

* display replaying status

* rename to INSTANT

* helper function pauseReplay

* more

* cleanup

use rDebug

* no template

* less colors

* remove function mv_add_str

* use BORDER_SIZE

* tune colors

* add spaces

* apply reviews

use /
old-commit-hash: 3ca8e3653b4dd7552c2cca6d3eb6ed76c98240be
2022-01-27 13:17:41 -08:00
George Hotz 6bac4f1c4a build for mac (#23048)
old-commit-hash: 16dd7ce1fe2a2b0537fefd5ad131d1494d0d09ad
2021-12-18 22:00:09 -08:00
Dean Lee 20c50f8f51 framereader: use the same alignement as visionbuf (#23208)
* aligned rgb buffer

* fix yuv stride
old-commit-hash: 768cfdb92a70f30435cf4c4ab1de083d8fbe6491
2021-12-15 16:19:07 -08:00
Dean Lee 71c282d42a logreader: support reading from corrupt log (#23050)
* catch exception outside loop

* print decompress error

* add test case for corrupt log

* fix decompressbz2 stuck if log is corrupt

* recovered from corrupt data

* add output

* ass space

* std::endl

* override load(), load from buffer

* override FrameReader::load to load from the buffer

* replace NULL with nullptr

* fix test case for corrupt log

* Trigger Build

* check bzerror too

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: dbec761941c7599591fb59e9bb9f74b4f8cab2f7
2021-11-29 14:10:24 +01:00
Dean Lee c6ae32ecb3 framereader: refactor seeking (#22926)
* refactor seeking

* ckeck packets.empty()

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 296c4076a2ae8dfdcae5f300c922eac7d1df69cc
2021-11-29 12:09:14 +01:00
Dean Lee 4ac4b61272 framereader: fix crash after fallback to cpu decoding (#23055)
old-commit-hash: a449b856cac746647ad994eb511600929d529498
2021-11-28 13:29:40 -08:00
Dean Lee e308bc0a3f framereader: replace swscale with libyuv, reduce cpu usage by half (#22992)
* use libyuv

* cleanup
old-commit-hash: 5ae51745097e3245c541456029fbc0fcce63a3c3
2021-11-26 14:41:14 +01:00
Dean Lee 816fbec7ab replay: fix swsscale crash on nv12->yuv conversion (#22961)
old-commit-hash: ddea21e6482a16cb80c772f5a4fd0a19a038d393
2021-11-17 20:04:45 -08:00
Dean Lee e72feb1263 framereader: remove memory copy overhead for AVIO (#22894)
* no memory copy

* merge master

better
old-commit-hash: dc8e23c94b29a8c26cc377f8649e497f33036c33
2021-11-17 13:25:40 +01:00
Dean Lee 0c26c21c9c framereader: support hardware decoding (#22906)
* support hardware accelerated video decoding

* support cuda only

* print decode info

* add yuv flag back

* fix height

* default is cuda

* fallback to CPU decoding

fix memory leak&cleanup

add output
old-commit-hash: 20d3cf1fcb3d5c64d438426b0706b2478b72e3d7
2021-11-17 11:17:59 +01:00
Dean Lee e0fa9b7909 framereader: remove deprecated ffmpeg functions (#22895)
old-commit-hash: c0b9c1f3afed048f7ae54d9ffe872e0a41b79968
2021-11-13 11:55:04 -08:00
Dean Lee 1e67fc25f1 replay: add qcam and YUV flags (#22788)
* common flags

* cleanup

* remove double semicolon

* camera

* apply reviews
old-commit-hash: fb8ba34f3103513705de2cb6397796b38a0c0689
2021-11-09 14:08:24 -08:00
Mayfield 43e1903073 enable wshadow (#22756)
* enable wshadow (#22714)

* fix replay

* more build fixes

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 5246f0231e6bfa572c0dd89c60e538910817faa2
2021-11-02 17:08:53 +01:00
Dean Lee 07ffd9c095 replay: fix frame lag when replaying to the next segment (#22773)
old-commit-hash: 0a5ca716030025f4164109702d8a29429911748d
2021-11-02 11:24:12 +01:00
Willem Melching 86e72f88c3 framereader.cc: better avformat_open_input error printing
old-commit-hash: f8d050298ecf969e1890fe10120ee0a748ed7eba
2021-11-02 09:56:49 +01:00
Dean Lee 993aa64067 replay: fix hanging on exit if stream thread has not been started yet (#22770)
old-commit-hash: 6f78cc77fc7bbc8e9d9efc5e9ae7e66dfeb06940
2021-11-01 16:06:39 -07:00
Dean Lee a031b938b0 replay: improve segment download and merge (#22654)
* no-cache mode

* fix test cases build error

* space

* don't create cache dir in no-cache mode

* fix errors in test cases

* no_local_cache_

* set the number of connections by chunk_size

* use size_t instead of int64_t

* add test case for no-cache mode

* rename variables

* fix SIGSEGV

* cleanup

* faster decompressBZ2

* always decompress bz2

* add test cases

* prepare for python interface

* fix test cases build error

* continue

* camera_replay: cache remote file

* protected inheritance

* single option name

* TODO

* test_case for LogReader&FrameReader

* fix wrong require

* test case for FileReader

* cleanup test

* test:fix wrong filename

* check cached file's checksum

* fix mkdir permissions err

cleanup filereader

* remove initialize libav network libraries.

dd

* abort all loading if one failed

* cleanup tests

* use threadpool to limit concurrent downloads

* cache more segments

* merge 3 segments for replay

* one segment uses about 100M of memory

* use segments_need_merge.size()

* shutdown

* fix stuck if exit replay  before keyboard thread started

* load one segment at a time

* small cleanup

* cleanup filereader

* space

* tiny cleanup

* merge master

* cleanup test cases

* use util:create_directories

* cleanup framereader
old-commit-hash: 2b4a477fbc8fc02da5876aee4f955194916f19a3
2021-11-01 11:55:56 +01:00
Dean Lee 15ed1a50a3 replay: fixed the alignment issue when replaying from C3 qcamera (#22734)
* fix qcamera replay

* fix alignment in replay

* upscale yuv if needed

* remove space
old-commit-hash: 41e5e76596eed1b6391cb5770df2c628c3125023
2021-11-01 11:06:00 +01:00
Dean Lee c742e81f3e framereader: use swscale to handle the YUV conversion (#22710)
old-commit-hash: 921600b95c70d034f0c575673efce75533d3ba7a
2021-10-29 12:14:14 +02:00
Dean Lee 6e0853986f replay: use an enum for flags (#22635)
* enum flags

* continue

* remove yuv flag for now
old-commit-hash: af7dba9250ba99ebb9afa32d393190dcce6954cc
2021-10-22 23:28:53 -07:00
Dean Lee 4f44e47aa1 replay: refactor FrameReader (#22438)
* decode from the previous keyframe after seek

* less memory

* some stream seems to contian no keyframes

* test random seek

* merge master

* continue

update test_cases

use fr

* merge master
old-commit-hash: 0189a19b8ebd18d9155328204da550c7ff1715f4
2021-10-18 14:19:23 -07:00
Dean Lee 5873c32178 framereader: remove swscale (#22578)
old-commit-hash: 085c424cf923f8a2886dbfaf7be71b1c38d28101
2021-10-16 13:56:04 -07:00
Dean Lee 37212cdd24 Replay/framereader: fix c3 qcamera padding problem (#22572)
old-commit-hash: ae5eedb0b1ab295881750f005230a195aa2f8d26
2021-10-16 12:24:34 -07:00
Dean Lee 38617c6c8f FrameReader: increase probesize to 10MB (#22437)
old-commit-hash: 97fc8b941e6144a395a93c09a0c90c53a8311d88
2021-10-05 15:15:11 +02:00
Dean Lee a8c5acb884 c++ replay: publish all frames in CameraServer (#22378)
* cameraserver

* support yuv

* init camera server in start()

* trigger ci
old-commit-hash: 1eb79d7a59a36e75ef2ccb1a8b1cea084784fc43
2021-10-04 16:45:28 +02:00
Dean Lee 5be69694ba replay improvements (#22203)
* refactor replay

* cleanup

small cleanup

* merge 22239

* cleanup

* add optional argument for start time

* small cleaup
old-commit-hash: 50ae7dd6a98fe1e08d5805a4c1d595e7eae30922
2021-09-19 12:24:28 -07:00
Dean Lee 1d5ca75029 FrameReader: do not depend on Qtunit tests (#21379)
* add timeout and test case

* remove useless comment

* reduce to 1s

* fix gotframe fail when Duplicate POC in a sequence

* cleanup

* remove space

* fix
old-commit-hash: 81a128cd764ef74a0d50be464dea653f46f82998
2021-09-09 13:40:12 -07:00
Dean Lee f70a79b838 Use C++ header files instead of C header files. (#21192)
* use cstring instead of string.h

* use cstdio instead of stdio.h

* remove inttypes.h

* use cstdlib instead of stdlib.h

* use cstdint instead of stdint.h

* #include <cstddef>

* cstdlib

* use cmath

* remove stddef.h

* use cassert

* use csignal

* use ctime

* use cerror

* rebase master
old-commit-hash: c53cb5d570adb82bc454fcabab458d7e7f09738c
2021-06-08 13:46:22 -07:00
Dean Lee afd0b1ee64 FrameReader: use 'from' in std::min comparison (#21195)
old-commit-hash: 211212f86b07cff5873ee35b1530734addb4c989
2021-06-08 13:32:42 -07:00
Dean Lee 7fb038fcf8 refactor FrameReader (#21141)
* refactor FrameReader

* continue

* move that

* small cleanup

* little more

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 67fe3feb09f7b800f197da328a5e5d837c30a141
2021-06-07 23:31:59 -07:00
Dean Lee a436b51e84 move c++ framereader to selfdrive/ui/replay (#21053)
old-commit-hash: bb5bcc7e49b8a1ae04e951ffc03848432edd8859
2021-05-27 16:00:11 -07:00