|
164 | 164 | pred
|
165 | 165 | interlaced-me = ,(arithmetic-shift 1 29)
|
166 | 166 | closed-gop = ,(arithmetic-shift 1 31))))
|
| 167 | + |
167 | 168 | (define _avcodec-flags2
|
168 | 169 | (_bitmask `(fast
|
169 | 170 | no-ouput = 4
|
|
174 | 175 | show-all = ,(arithmetic-shift 1 22)
|
175 | 176 | export-mvs = ,(arithmetic-shift 1 28)
|
176 | 177 | skip-manual)))
|
| 178 | + |
177 | 179 | (define _avio-flags
|
178 | 180 | (_bitmask `(read = 1
|
179 | 181 | write = 2
|
180 | 182 | read-write = 3
|
181 | 183 | nonblock = 8
|
182 | 184 | direct = #x8000)))
|
| 185 | + |
183 | 186 | (define _av-dictionary-flags
|
184 | 187 | (_bitmask `(match-case
|
185 | 188 | ignore-suffix
|
186 | 189 | dont-strdup-key
|
187 | 190 | dont-strdup-val
|
188 | 191 | dont-overwrite
|
189 | 192 | append)))
|
| 193 | + |
190 | 194 | (define _avfilter-flags
|
191 | 195 | (_bitmask `(dynamic-inputs
|
192 | 196 | dynamic-outputs
|
|
195 | 199 | support-timeline-internal
|
196 | 200 | support-timeline = ,(bitwise-ior (arithmetic-shift 1 16)
|
197 | 201 | (arithmetic-shift 1 17)))))
|
| 202 | + |
198 | 203 | (define _avfilter-command-flags
|
199 | 204 | (_bitmask `(one
|
200 | 205 | fast)))
|
201 | 206 |
|
| 207 | +(define _av-buffer-sink-flags |
| 208 | + (_bitmask '(peek |
| 209 | + no-request))) |
| 210 | + |
| 211 | +;; =================================================================================================== |
| 212 | + |
202 | 213 | (define _avcodec-id (_enum '(none
|
203 | 214 |
|
204 | 215 | ;; Video
|
|
508 | 519 | bgr444be
|
509 | 520 | ya8
|
510 | 521 | ))) ;; XXX And more! :)
|
| 522 | +(define-cpointer-type _avpixel-format-pointer) |
511 | 523 |
|
512 | 524 | (define _avcolor-transfer-characteristic _fixint)
|
513 | 525 | (define _avcolor-space _fixint)
|
|
1184 | 1196 | [priv _pointer]
|
1185 | 1197 | [commandqueue _avfilter-command-pointer]))
|
1186 | 1198 |
|
| 1199 | +(define-cstruct _avfilter-in-out |
| 1200 | + ([name _string] |
| 1201 | + [filter-ctx _avfilter-context-pointer] |
| 1202 | + [pad-idx _int] |
| 1203 | + [next _avfilter-in-out-pointer])) |
| 1204 | + |
| 1205 | +(define-cstruct _av-buffersink-params |
| 1206 | + ([pixel-fmts _avpixel-format-pointer/null])) |
| 1207 | + |
| 1208 | +(define-cstruct _av-buffersink-aparams |
| 1209 | + ([sample-fmts _avsample-format-pointer/null] |
| 1210 | + [channel-layout _pointer] |
| 1211 | + [channel-counts _pointer] |
| 1212 | + [all-channel-counts _int] |
| 1213 | + [sample-rates _int])) |
| 1214 | + |
1187 | 1215 | ;; ===================================================================================================
|
1188 | 1216 |
|
1189 | 1217 | (define-avformat av-register-all (_fun -> _void))
|
|
1465 | 1493 | (define-avutil av-get-channel-layout-nb-channels (_fun _av-channel-layout -> _int))
|
1466 | 1494 | (define-avutil av-compare-ts (_fun _int64 _avrational _int64 _avrational
|
1467 | 1495 | -> _int))
|
| 1496 | +(define-avutil av-strdup (_fun _string -> _pointer)) |
1468 | 1497 |
|
1469 | 1498 | (define-swscale sws-getContext (_fun _int
|
1470 | 1499 | _int
|
|
1511 | 1540 | -> (cond
|
1512 | 1541 | [(>= ret 0) out]
|
1513 | 1542 | [else (error 'graph-create-filter (convert-err ret))])))
|
| 1543 | +(define-avfilter avfilter-get-by-name (_fun _string -> [ret : _avfilter-pointer/null] |
| 1544 | + -> (or ret (error 'avfilter "Invalid Filter Name")))) |
| 1545 | +(define (av-buffersink-get-frame ptr [out #f]) |
| 1546 | + (define-avfilter av-buffersink-get-frame (_fun _avfilter-context-pointer [out : _av-frame-pointer] |
| 1547 | + -> [ret : _int] |
| 1548 | + -> (cond |
| 1549 | + [(>= ret 0) out] |
| 1550 | + [else (error 'buffersink-get-frame |
| 1551 | + (convert-err ret))]))) |
| 1552 | + (define o (or out (av-frame-alloc))) |
| 1553 | + (av-buffersink-get-frame ptr o)) |
| 1554 | +(define-avfilter av-buffersink-params-alloc (_fun -> _av-buffersink-params-pointer)) |
| 1555 | +(define-avfilter av-buffersink-aparams-alloc (_fun -> _av-buffersink-aparams-pointer)) |
0 commit comments