sidecar package on Ubuntu ?

Status
Not open for further replies.
That's fine, I (incorrectly) assumed the "update" and "feature requests" were something to do with sidecar.
 
I relented to pressure on ProofOfConceptUnlink and produced an update. On the basis of the proverb “Give a man a fish you feed him for a day, teach a man to fish you feed him for life” I decided to produce this post on sidecar maintenance. I am therefore listing design decisions and assumptions so they can be chalanged.

I believe sidecar is “abandon ware” i.e. something that is still useful but has been abandoned by it’s creator so the only way to maintain is to hack.

Development Hardware :-
Laptop (so I can do stuff during add breaks) (TOSHIBA Satellite C50D-B-120 with several upgrades e.g. optical drive fitted).
Windows development environment :-
Windows 10 (free upgrade from 8.1)
MinGW32 Version 201307220 (because standard MinGW produces 64 bit executables by default and takes a lot of switches on the command line to produce 32 bit executables, sidecar is 32 bit so I wanted 32 bit, cygwin executables need dll(s) which tend to get “lost”)
Augmented with elf.h and all it’s dependencies from Ubuntu 10.10 (because I wanted to manipulate ELFs so I needed an elf.h, Ubuntu 10.10 see Linux development environment)
XVI32 (Hex editor)(because I wanted it to be difficult to save changes to a binary accidentally and I wanted to be able to cut/paste as twin hex)
VirtualBox (so I can do stuff during add breaks, Disk Management can create and mount VHDs as can VirtualBox, I use a 4GB FAT32 VHD to move data to/from the virtual environments)
Windows test environment :-
Windows XP SP3 (because when the industry moved from XP to 7 the majority of the software vendors made the price of an upgrade licence from XP the same as a new 7 licence resulting in XP versions being gifted to employees so I have software on XP that would cost tens of thousands to replace, I wish all my video related tools on one PC)
Running under VirtualBox (so I can do stuff during add breaks)
Linux development environment :-
Ubuntu 10.10 i386 (because having read sidecar’s .note.* and .comment sections as plain text I believe it has the same version of GCC as sidecar was compiled and linked with. This allows a “guess” at the c source to be compiles and the objdump to be compared with a snippet of sidecar’s objdump)
Running under VirtualBox (so I can do stuff during add breaks)
Linux test environment :-
Ubuntu live 16.04.4 amd64 running from USB stick (because this represents the sort of environment you may have to use if you have borrowed a laptop from work and it has been locked down so you can not install, version with LTS, allows to check for 64bit problems)

Custom Tools :-
ProofOfConceptUnlink Update 1 (attached, because this allows hook of internal procedures)
MixedEnvironmentProgramming Vn0.9(attached, because this allows .o files compiled in Linux to be linked with MinGW)

My ultimate goal has always been to port hrwconv to something that will considerably faster than the hummy, and can use the increase in disk speed for a 2T replacement disk e.g. Seagate Video 3.5 HDD ST2000VM003, in order to do a family wide technology update from 9300Ts to HDR-Fox T2s. The last time I did a family wide technology upgrade I bought every unit on eBay and the price jumped by a factor of 4 so I did myself no favours when I needed a spare. This time I am buying units slowly and the price has not increased. The upshot is I have time before I need to use the hrwconv port in anger. So my question is how bad is the non-monotonically increasing timestamps bug mentioned by MontysEvilTwin? i.e. should I attempt the hrwconv port(s) of sidecar maintenance first ?
 

Attachments

  • ProofOfConceptUnlink.zip
    392.7 KB · Views: 5
  • MixedEnvironmentProgrammingVn0.9.zip
    405.3 KB · Views: 6
I relented to pressure on ProofOfConceptUnlink and produced an update. On the basis of the proverb “Give a man a fish you feed him for a day, teach a man to fish you feed him for life” I decided to produce this post on sidecar maintenance. I am therefore listing design decisions and assumptions so they can be chalanged.

I believe sidecar is “abandon ware” i.e. something that is still useful but has been abandoned by it’s creator so the only way to maintain is to hack.

Development Hardware :-
Laptop (so I can do stuff during add breaks) (TOSHIBA Satellite C50D-B-120 with several upgrades e.g. optical drive fitted).
Windows development environment :-
Windows 10 (free upgrade from 8.1)
MinGW32 Version 201307220 (because standard MinGW produces 64 bit executables by default and takes a lot of switches on the command line to produce 32 bit executables, sidecar is 32 bit so I wanted 32 bit, cygwin executables need dll(s) which tend to get “lost”)
Augmented with elf.h and all it’s dependencies from Ubuntu 10.10 (because I wanted to manipulate ELFs so I needed an elf.h, Ubuntu 10.10 see Linux development environment)
XVI32 (Hex editor)(because I wanted it to be difficult to save changes to a binary accidentally and I wanted to be able to cut/paste as twin hex)
VirtualBox (so I can do stuff during add breaks, Disk Management can create and mount VHDs as can VirtualBox, I use a 4GB FAT32 VHD to move data to/from the virtual environments)
Windows test environment :-
Windows XP SP3 (because when the industry moved from XP to 7 the majority of the software vendors made the price of an upgrade licence from XP the same as a new 7 licence resulting in XP versions being gifted to employees so I have software on XP that would cost tens of thousands to replace, I wish all my video related tools on one PC)
Running under VirtualBox (so I can do stuff during add breaks)
Linux development environment :-
Ubuntu 10.10 i386 (because having read sidecar’s .note.* and .comment sections as plain text I believe it has the same version of GCC as sidecar was compiled and linked with. This allows a “guess” at the c source to be compiles and the objdump to be compared with a snippet of sidecar’s objdump)
Running under VirtualBox (so I can do stuff during add breaks)
Linux test environment :-
Ubuntu live 16.04.4 amd64 running from USB stick (because this represents the sort of environment you may have to use if you have borrowed a laptop from work and it has been locked down so you can not install, version with LTS, allows to check for 64bit problems)

Custom Tools :-
ProofOfConceptUnlink Update 1 (attached, because this allows hook of internal procedures)
MixedEnvironmentProgramming Vn0.9(attached, because this allows .o files compiled in Linux to be linked with MinGW)

My ultimate goal has always been to port hrwconv to something that will considerably faster than the hummy, and can use the increase in disk speed for a 2T replacement disk e.g. Seagate Video 3.5 HDD ST2000VM003, in order to do a family wide technology update from 9300Ts to HDR-Fox T2s. The last time I did a family wide technology upgrade I bought every unit on eBay and the price jumped by a factor of 4 so I did myself no favours when I needed a spare. This time I am buying units slowly and the price has not increased. The upshot is I have time before I need to use the hrwconv port in anger. So my question is how bad is the non-monotonically increasing timestamps bug mentioned by MontysEvilTwin? i.e. should I attempt the hrwconv port(s) of sidecar maintenance first ?
There was some discussion of this problem in the original sidecar thread here. H264 video is also affected but it is not noticeable on-screen. It is with mpeg video at reverse speeds of x2 and x4 that you really see it. I think it is a significant defect but perhaps I am just picky? @prpr is familiar with the problem and did write a prototype tool to fix faulty nts files. I also found another bug with sidecar an H264 video, but it only seems to affect recordings that have been remuxed with ffmpeg: see here.
Regarding @raydon, he has not posted here for approaching two years. He no longer posts on AV forums either. I hope he just got bored with this stuff and moved on.
 
Watch this space! I am in conversation with prpr and I wish him to peer review sidecar Vn 2.4 before general release so I can be sure I have understood the problem. If I have been human then I am sure he will tell me and I can try again.

** EDIT ** I was looking at what the NTS File Format calls "Picture sequence frame count", I believe you were taking about "Presentation TimeStamp (PTS)". OOOPS my bad, at least I can keep 60% of the work I did!

** EDIT 2 ** Can't find anything wrong with "Presentation TimeStamp (PTS)" (0x10) but "Played Time" (0x18) does not sense, back on track!
 
Last edited:
Sidecar Vn 2.4 Release candidate 1

I am calling it a release candidate because there is testing I have not done.

I have not tested the H264 / MPEG2 switch with an SD H264 file.

I have not tested if core sidecar actually extracts and stores the ms 32 bits of the timestamps in the .ts file.

I have not tested if core sidecar deals with timestamp wrap through zero.

I have not had anybody independently derive the MPEG2 and H264 “magic numbers” for conversion to ms.

Note: I have found that if you just quote the relevant parts of the standards and your reasoning people just agree with you, even if you are mistaken, which rather defeats the object of a second independent derivation !

** EDIT - Sorry guys. raydon obviously believes that my variants break his copyright despite my efforts not to modify the binary, just provide wrappers. Obviosly this means hrwconv for windows and linux live can not be releseased.
 
Status
Not open for further replies.
Back
Top