On 10/08/2012 04:23 PM, Carl Eugen Hoyos wrote:
Davy Durham <ddurham@...> writes:

I'm experimenting with changing rezound (a destructive audio
editor) to use libavcodec/libavformat instead of its current
use of many other libraries (libsndfile, libaudiofile, lame,
manual coding in some places, etc).
Without knowing anything about rezound, I wonder if it wouldn't
make more sense to integrate rezound as an audio filter in
libavfilter (assuming it is a library)...
Well, ReZound is basically an editor.. you load the file, edit it, save it again. I just need to read the decoded audio into the native formatted working file, and then re-encode it back to the original file (File->Save) or into a new file (File->Save As)
[...]

So then if the user chooses the save the file after doing
their editing, is it feasible (with libavformat) to replace
stream X in the original file leaving all other streams
intact?
"Replace" might be the wrong word:
You can mux video and audio streams into the usual containers
(and some more), and you not just mux the edited and encoded
audio from rezound but also the unchanged streams from the
input file, but I wouldn't call the muxing "replacing"
anything.
Given the above, that's what I mean by replace. The user would be "replacing" the stream in the file that they loaded when they choose to "File->Save" it.
[...]

I don't immediately see something like a struct for each
supported codec that describes all the options for that
codec.  [Did I miss it?]
I think so because many codecs have an AVOption struct that
describe their codec-specific options.
(Many options are global though).
Would libavcodec/ac3enc.h: struct AC3EncOptions be an example?

That's not an AVOptions struct..

How/Where is an AC3EncOptions object given to the codec when encoding AC3? That might help answer my question.

Also, is there a way to know from the library what codecs
are supported by a given muxer?
I don't think so, but some containers (like avi and nut)
support basically any stream while others are special
(and some allow you to put things in it that don't
belong there). I suspect initializing a muxer with streams
tells you the answer.

[...]
Makes sense
I've found the doxygen code and the api-example.c (which
only helps with libavcodec). Are there other good
resources for figuring this stuff out?
doc/examples contains some more example code nowadays.
Thanks, I'll give those a look-see.
Carl Eugen

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to