[Libav-user] ReZound Integration Question

Davy Durham ddurham at davyandbeth.com
Tue Oct 9 00:32:55 CEST 2012

On 10/08/2012 04:23 PM, Carl Eugen Hoyos wrote:
> Davy Durham <ddurham at ...> 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
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user

More information about the Libav-user mailing list