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

Reply via email to