Commit Graph
194 Commits
Author SHA1 Message Date
itsmattkc 83e7707025 media: implement importing SRT files 2022-05-11 13:48:59 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc bb0fedabba simplified and optimized samplebuffer 2022-05-09 14:55:51 -07:00
itsmattkc b290c4d007 audio: extended support for planar/packed formats 2022-05-03 13:41:27 -07:00
itsmattkc 1c30c4d361 ffmpeg: use best effort timestamp instead of pts 2022-03-27 17:43:07 -07:00
itsmattkc 03f0ec9f64 ffmpeg: updated for 5.0 2022-02-17 14:53:12 -08:00
itsmattkc 4173eb3c49 conform audio to planar in the decoder 2021-10-13 16:01:26 -07:00
itsmattkc 677277c16d renderer: improved code flow 2021-09-21 19:10:03 -07:00
itsmattkc bc275e421f ffmpeg: don't use macro which makes compilers mad 2021-08-25 13:24:29 -07:00
itsmattkc 0551b2cc5e ffmpeg: use format context duration as fallback for conform signalling 2021-08-25 13:01:11 -07:00
itsmattkc d713ba3be7 fixed 32-bit integer overflow on long audio 2021-08-08 17:05:41 -07:00
itsmattkc 69009180ab ffmpegdecoder: fixed bug where incorrect divider was stored 2021-05-30 12:25:41 +10:00
itsmattkc cc21ed37a7 implemented core subtitle support 2021-05-18 12:42:47 +10:00
itsmattkc 4adaedb304 ffmpegdecoder: fixed issue with interlaced footage in some situations 2021-05-16 18:31:03 +10:00
itsmattkc ba9ed99849 footage: check files for changes 2021-05-16 10:29:05 +10:00
itsmattkc 51b3d974c5 ffmpegdecoder: fixed memory leak introduced by switch to AVFilter backend 2021-05-13 21:30:53 +10:00
itsmattkc 15556c64ae encoder: write audio in segments
I'll be honest, this probably makes no noticeable difference at all. It should be faster and more efficient, but whether that translates into any tangible improvement is yet to be seen.
2021-05-10 00:44:08 +10:00
itsmattkc eb0cbea108 improved interlacing 2021-05-03 22:08:05 +10:00
itsmattkc 2484daf141 implemented full support for interlaced footage
Includes importing and exporting interlaced footage. Fixes #1340.
2021-05-03 13:56:54 +10:00
itsmattkc ee6b09f772 ffmpegdecoder: use avfilter system instead of raw swscale commands
Heh this was inevitable
2021-05-03 12:10:51 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 898ea25e89 finished merge of viewer and footage 2021-04-06 13:08:56 +10:00
itsmattkc 4827782331 moved sequence params into node graph too
Reduces code by reusing more of the existing node infrastructure
to synchronize sequence parameters the render backend.
2021-02-18 13:20:23 +11:00
itsmattkc d7c5ac4b44 implement entire project in nodes
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc e12013e2fb don't use shared ptrs for project items 2020-12-16 10:28:43 +11:00
itsmattkc 42506e0da0 ffmpegdecoder: fallback to footage duration if available 2020-11-20 18:13:53 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 2c086ce9fb removed debug line 2020-11-16 01:33:24 +11:00
itsmattkc 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
itsmattkc 3c1ac3eeba upgraded to ocio v2 2020-11-11 21:53:24 +11:00
itsmattkc 94c0914e50 codec system rework
Codecs are now much cleaner and thread safe by design.
2020-11-10 11:23:25 +11:00
itsmattkc bc60c74562 finalized very, very basic OTIO support
Ironed out various project and footage loading issues, and a single
cache invalidation issue.
2020-10-23 01:26:17 +11:00
itsmattkc 917738d1de Merge branch 'master' into otio 2020-10-22 20:26:16 +11:00
itsmattkc db8d321fa7 project: improved loading and footage importing 2020-10-19 14:41:01 +11:00
itsmattkc d620af412f decoder: improved memory management 2020-10-13 23:49:30 +11:00
itsmattkc 7c0d7a9fe3 ffmpeg: manually retrieve audio duration if metadata doesn't provide one
We did this for video, now we do it for audio too.

Fixes #1266
2020-10-12 17:58:56 +11:00
itsmattkc 6db591e89f footage: merge video and image streams and improve image sequence import process
Image streams were initially separated from video streams, but they're now
joined with a parameter defining if they're a still image, image sequence,
or regular video. The image sequence import process has also improved so
that if images from the same sequence are imported too, they'll either be
ignored or the user won't be asked again for those if they should be an
image sequence (fixes #1193). Also shifts decoder "probe" process to return
an item, useful if the decoder returns a non-footage item.
2020-09-26 19:45:07 +10:00
itsmattkc 8506c82a0c import: safely handle unsupported files
Fixes #1191
2020-09-18 12:58:55 +10:00
itsmattkc 050103a857 memory: implemented basic memory limiting functionality
Keeps track of total memory usage and uses it as a guide towards
allocating/reusing more memory.
2020-08-29 13:34:54 +10:00
itsmattkc c99eb68d45 ffmpegdecoder: frame pool by dimensions/format rather than stream
Memory optimization.
2020-08-26 17:42:10 +10:00
itsmattkc c12e39b597 ffmpegframepool: reduced frame pool size 2020-08-19 17:41:46 +10:00
itsmattkc f3f81eb2be ffmpeg: store divided frames in memory cache
Since users will most likely be working with a divider most of the time,
there's no reason to waste memory space with undivided frames considering
the dividing process is quite fast.
2020-08-18 04:55:23 +10:00
itsmattkc d9851dc329 decoders: mild refactoring and code cleanup
Just making things a little bit nicer.
2020-08-18 03:17:01 +10:00
itsmattkc 28dcff10c0 various: implement sequence pixel aspect ratios and interlacing settings
Implements the following:
- Sequences have pixel aspect ratios that work in tandem with footage PARs
  to render footage correctly. Viewer and export also acknowledge PARs
- Sequences can have interlacing settings. This doesn't do anything yet,
  eventually the renderer will need to interlace/deinterlace/reinterlace
  appropriately in order to conform all the footage to the sequence. Export
  acknowledges interlacing, but this only affects metadata, not the image.
2020-08-10 01:47:26 +10:00
itsmattkc 901f1001af renderer: improved memory management
Clear up more memory when it isn't used for a while.
2020-08-09 14:03:11 +10:00
itsmattkc df14c2aaa7 cache: better implemented changing disk cache folders
Not complete yet, but getting there.
2020-08-07 02:31:46 +10:00
itsmattkc 9a4dcd8277 ffmpegdecoder: handle unexpected EOF 2020-08-05 22:31:14 +10:00