|
|
|
|
|
- [ ] Defer the avformat_find_stream_info, and get basic stream info before setting options. An alternative is to provide a `av.probe` function or something.
|
|
|
- flags docs
|
|
|
- `autoremaining` directive to autodoc all non-documented things
|
|
|
- options
|
|
|
- class descriptors
|
|
|
- rename containers to formats?
|
|
|
|
|
|
- [ ] Container.decode_one(**demux_kwargs) -> Frame. There would be a Container._buffered_decoded_frames or something that would contain extras, just in case. Stream and CodecContext have the same.
|
|
|
- Defer the avformat_find_stream_info, and get basic stream info before setting options. An alternative is to provide a `av.probe` function or something.
|
|
|
|
|
|
- [ ] Data stream support.
|
|
|
- Container.decode_one(**demux_kwargs) -> Frame. There would be a Container._buffered_decoded_frames or something that would contain extras, just in case. Stream and CodecContext have the same.
|
|
|
|
|
|
- [ ] assert nb_channels vs channel_layout
|
|
|
- Data stream support.
|
|
|
|
|
|
- [ ] Frame.save(file_or_path)
|
|
|
- [ ] Frame.load(file_or_path) (classmethod); opens the file and decodes the first frame. Perhaps `av.load_frame` or something.
|
|
|
- assert nb_channels vs channel_layout
|
|
|
|
|
|
- [ ] `isdeferredinstance` loads the module via sys.modules, then getattr on it, and
|
|
|
- Frame.save(file_or_path)
|
|
|
- Frame.load(file_or_path) (classmethod); opens the file and decodes the first frame. Perhaps `av.load_frame` or something.
|
|
|
|
|
|
- `isdeferredinstance` loads the module via sys.modules, then getattr on it, and
|
|
|
finally do an isinstance. `isdeferredinstance(x, ('PIL.Image', 'Image'))`
|
|
|
|
|
|
- [ ] Rename `Buffer` and `ByteSource` to represent they are opposite directions of
|
|
|
- Rename `Buffer` and `ByteSource` to represent they are opposite directions of
|
|
|
the same operation.
|
|
|
|
|
|
- [ ] `atexit.register` something to clean up FFmpeg threads
|
|
|
- `atexit.register` something to clean up FFmpeg threads
|
|
|
|
|
|
- [ ] Directly use the Numpy C-API
|
|
|
- Directly use the Numpy C-API
|
|
|
- see: http://docs.scipy.org/doc/numpy/reference/c-api.array.html
|
|
|
- see: https://github.com/cython/cython/wiki/tutorials-numpy#c-api-initalization
|
|
|
|
|
|
- [ ] Move the logic regard initializating a `VideoReformatter` into the object
|
|
|
- Move the logic regard initializating a `VideoReformatter` into the object
|
|
|
itself instead of the VideoFrame.reformat method.
|
|
|
|
|
|
- [ ] Protocol for streams to pull packets from iterators. Then secondary streams
|
|
|
- Protocol for streams to pull packets from iterators. Then secondary streams
|
|
|
get easier: container.add_stream('audio_codec', source=av.open('music.aiff').iter_packets(only_primary=True))
|
|
|
|
|
|
- [ ] Make av.utils.SmartPointer to wrap around a pointer? All this would do is
|
|
|
- Make av.utils.SmartPointer to wrap around a pointer? All this would do is
|
|
|
hold a reference to said pointer and make sure it isn't garbage collected.
|
|
|
|
|
|
- [ ] Look at how stream alloc works; can we manually do this and register the
|
|
|
- Look at how stream alloc works; can we manually do this and register the
|
|
|
stream on a format context later?
|
|
|
|
|
|
- [ ] Various AudioLayout/AudioFormat/VideoFormat attributes should be writable.
|
|
|
- Various AudioLayout/AudioFormat/VideoFormat attributes should be writable.
|
|
|
- is_mutable flags on various objects (including formats, layouts, contexts,
|
|
|
streams, etc.) could guard the __set__ methods of properties.
|
|
|
|
|
|
- [ ] TestCase.rms_diff(one, two) -> Root-mean-square diff
|
|
|
- [ ] try to wrap API of testsrc filters
|
|
|
- TestCase.rms_diff(one, two) -> Root-mean-square diff
|
|
|
- try to wrap API of testsrc filters
|
|
|
|
|
|
- [ ] Replicate av_frame_get_best_effort_timestamp
|
|
|
- Replicate av_frame_get_best_effort_timestamp
|
|
|
- http://ffmpeg.org/pipermail/ffmpeg-devel/2011-February/104327.html
|
|
|
- http://pastebin.com/Aq8eDZw3/
|
|
|
- http://web.archiveorange.com/archive/v/yR2T4bybpYnYCUXmzAI5
|
... | ... | |