4th try at new audio encoding API.
a few differences:
I included Ronald's suggestion of got_packet_ptr instead of inspecting
various packet fields to decide whether the output packet is empty.
I left out passing of the input timestamps to the encoder in the avconv
conversion patch for now because it exposes many timestamp bugs in various
demuxers and breaks FATE. Currently output timestamps are made-up by the
encoder and/or lavf because we don't have a way to pass input timestamps to
the encoder, but with the new API we do, thus exposing any timestamp issues
on the demuxer side. I already fixed a few of the bugs earlier today, but I
still have about 20 failing fate tests to fix before we can start passing
the timestamps to the encoder in avconv or implement encode2() in any
CODEC_CAP_DELAY encoders (which would rely on timestamps from the user).
I also added code in the avcodec_encode_audio() compatibility code for
removing any side-data from the temp packet. None of the audio encoders
send side-data currently, but having the code there now will ensure we
don't forget to handle it later.
Thanks,
Justin
Justin Ruggles (5):
avcodec: add a public function, avcodec_fill_audio_frame().
avcodec: Add avcodec_encode_audio2() as replacement for
avcodec_encode_audio()
avcodec: bump minor version and add APIChanges for the new audio
encoding API
pcmenc: use AVCodec.encode2()
avconv: use avcodec_encode_audio2()
avconv.c | 208 ++++++++++++++++---------------
doc/APIchanges | 8 ++
libavcodec/avcodec.h | 92 ++++++++++++++-
libavcodec/internal.h | 25 ++++
libavcodec/pcm.c | 28 +++--
libavcodec/utils.c | 327 ++++++++++++++++++++++++++++++++++++++++---------
libavcodec/version.h | 7 +-
7 files changed, 524 insertions(+), 171 deletions(-)
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel