Encoder testing
This commit is contained in:
+22
-12
@@ -1,7 +1,8 @@
|
||||
(module pcm-converter racket/base
|
||||
|
||||
(require ffi/unsafe
|
||||
"../ffmpeg-definitions.rkt")
|
||||
"../ffmpeg-definitions.rkt"
|
||||
"utils.rkt")
|
||||
|
||||
(provide pcm-conversion-needed?
|
||||
make-pcm-converter
|
||||
@@ -28,7 +29,7 @@
|
||||
out))
|
||||
|
||||
(define (native-signed-ref bs start bytes)
|
||||
(integer-bytes->integer bs #t (system-big-endian?) start (+ start bytes)))
|
||||
(int-bytes->integer bs #t (system-big-endian?) start (+ start bytes)))
|
||||
|
||||
(define (native-signed-set! bs start bytes value)
|
||||
(integer->integer-bytes value bytes #t (system-big-endian?) bs start))
|
||||
@@ -69,21 +70,30 @@
|
||||
(ptr-set! planes _pointer 0 ptr)
|
||||
planes))
|
||||
|
||||
(define (source-value v source)
|
||||
(if (eq? v 'source) source v))
|
||||
|
||||
(define (target-sample-rate settings input-format)
|
||||
(hash-ref/default settings 'target-sample-rate
|
||||
(hash-ref/default settings 'sample-rate
|
||||
(hash-ref input-format 'sample-rate))))
|
||||
(source-value
|
||||
(hash-ref/default settings 'target-sample-rate
|
||||
(hash-ref/default settings 'sample-rate
|
||||
(hash-ref input-format 'sample-rate)))
|
||||
(hash-ref input-format 'sample-rate)))
|
||||
|
||||
(define (target-channels settings input-format)
|
||||
(hash-ref/default settings 'target-channels
|
||||
(hash-ref/default settings 'channels
|
||||
(hash-ref input-format 'channels))))
|
||||
(source-value
|
||||
(hash-ref/default settings 'target-channels
|
||||
(hash-ref/default settings 'channels
|
||||
(hash-ref input-format 'channels)))
|
||||
(hash-ref input-format 'channels)))
|
||||
|
||||
(define (target-bits settings input-format)
|
||||
(hash-ref/default settings 'target-bits-per-sample
|
||||
(hash-ref/default settings 'bits-per-sample
|
||||
(let ((bits (hash-ref/default input-format 'bits-per-sample 24)))
|
||||
(if (and (integer? bits) (<= bits 24)) bits 24)))))
|
||||
(let ((source-bits (let ((bits (hash-ref/default input-format 'bits-per-sample 24)))
|
||||
(if (and (integer? bits) (<= bits 24)) bits 24))))
|
||||
(source-value
|
||||
(hash-ref/default settings 'target-bits-per-sample
|
||||
(hash-ref/default settings 'bits-per-sample source-bits))
|
||||
source-bits)))
|
||||
|
||||
(define (make-output-format input-format settings)
|
||||
(let* ((out (copy-hash input-format))
|
||||
|
||||
Reference in New Issue
Block a user