Le 24/09/2013 16:51, Eugen Dedu a écrit :
On 24/09/13 16:36, Thierry Simonnet wrote:
Here is a quick patch based on avcodec_decode_video2. I need to check
better my job.

austerlitz:~/win32> diff -u src/opal/plugins/video/common/dyna.cxx
src/opal/plugins/video/common/dyna.cxx.new
--- src/opal/plugins/video/common/dyna.cxx      2013-09-24
16:28:35.000000000 +0200
+++ src/opal/plugins/video/common/dyna.cxx.new  2013-09-24
15:22:33.000000000 +0200
@@ -217,14 +217,14 @@
  #endif


-FFMPEGLibrary::FFMPEGLibrary(CodecID codec)
+FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec)
  {
    m_codec = codec;
-  if (m_codec==CODEC_ID_H264)
+  if (m_codec==AV_CODEC_ID_H264)
        snprintf( m_codecString, sizeof(m_codecString), "H264");
-  if (m_codec==CODEC_ID_H263P)
+  if (m_codec==AV_CODEC_ID_H263P)
        snprintf( m_codecString, sizeof(m_codecString), "H263+");
-  if (m_codec==CODEC_ID_MPEG4)
+  if (m_codec==AV_CODEC_ID_MPEG4)
        snprintf( m_codecString, sizeof(m_codecString), "MPEG4");
    m_isLoadedOK = false;
  }
@@ -268,12 +268,12 @@
    return true;
  }

-AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
+AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id)
  {
    return avcodec_find_encoder(id);
  }

-AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
+AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id)
  {
    WaitAndSignal m(processLock);

Ok for the above, cf. http://www.libav.org/releases/libav-9.9.release:
"All CODEC_ID_* symbols now carry AV_ prefixes. Non-prefixed codec IDs are deprecated."

@@ -311,11 +311,28 @@
  int FFMPEGLibrary::AvcodecEncodeVideo(AVCodecContext *ctx, BYTE *buf,
int buf_size, const AVFrame *pict)
  {
    int res;
+//TS
+  AVPacket avpkt;
+  av_init_packet(&avpkt);
+  avpkt.data = ""
+  avpkt.size = buf_size;
+
+  int gotPacket = 0;
+  res = avcodec_encode_video2(ctx, &avpkt, pict, &gotPacket);
+  if (res < 0) {
+       PTRACE(1, m_codecString, "Encoder failed");
+       return res;
+  }
+  if (gotPacket)
+       return avpkt.size;
+
+  PTRACE(3, m_codecString, "Encoder returned no data");

-  res = avcodec_encode_video(ctx, buf, buf_size, pict);
+  return 0;
+//TS  res = avcodec_encode_video(ctx, buf, buf_size, pict);

-  PTRACE(6, m_codecString, "DYNA\tEncoded into " << res << " bytes, max
" << buf_size);
-  return res;
+//TS  PTRACE(6, m_codecString, "DYNA\tEncoded into " << res << " bytes,
max " << buf_size);
+//TS  return res;
  }

  int FFMPEGLibrary::AvcodecDecodeVideo(AVCodecContext *ctx, AVFrame
*pict, int *got_picture_ptr, BYTE *buf, int buf_size)

I do not have time right now to check the above, I would like to know if you are sure about this change.

Anyway, I will take care once libav 9.9 appears on debian, thank you very much!
It is necessary with avcodev-55.
Need also to change win32/Makefile to add avcodec-55.dll
First tests using windows are OK.
This minimal patch doesn't handle plugin codec flags.

I don't think it is really useful if the aim is using branc #12 of opal/ptlib.


On 09/24/2013 09:19 AM, Eugen Dedu wrote:
On 24/09/13 09:11, Thierry Simonnet wrote:
Le 23/09/2013 15:08, Eugen Dedu a écrit :
On 20/09/13 15:57, Thierry Simonnet wrote:
Hello,

I noticed that avcodec_encode_video doesn't exist any more in the
last version
of libav-9. It is replaced, of course,  by avcodec_encode_video2.
It impacts

Please be more precise: what version of libav?  With which version
it worked?
I use trunk version of libav.

Ah!  I will take a look later.

It doesn't work since last week.

opal 3.10.12 (for me), and especially dyna mechanism.
I will have a look next week (if there is no patch from opal).


--

Thierry Simonnet

ESIEE-Paris

Par respect pour l’environnement, n’imprimez ce mail que si nécessaire


_______________________________________________
ekiga-devel-list mailing list
ekiga-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/ekiga-devel-list

Reply via email to