<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Am 31.05.2012 15:51, schrieb Christian Brümmer:
    <blockquote cite="mid:4FC77744.4020804@gmx.de" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Am 30.05.2012 12:44, schrieb Christian Brümmer:
      <blockquote cite="mid:4FC5FA06.8000209@gmx.de" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        Am 30.05.2012 04:07, schrieb Kalileo:
        <blockquote
          cite="mid:DAC3C97B-0CB7-4101-B9FD-4350D4AD56C7@universalx.net"
          type="cite">
          <pre wrap="">On May 29, 2012, at 20:26 , Christian Brümmer wrote:

</pre>
          <blockquote type="cite">
            <pre wrap="">"Cant be that hard - or? "

Okay now im pretty sure it is:

I read AVCodecContex.extradata contains the informations i need. For decoding i used that code -> <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://cgit.lscube.org/cgit.cgi/feng/tree/src/media/parser/h264.c#n218">http://cgit.lscube.org/cgit.cgi/feng/tree/src/media/parser/h264.c#n218</a> - in a slightly modified way (replaced glib functions with e.g. libavs base64.h). Finally the decoding stuff is running - BUT...

my AVCodecContext.extradata_size == 0 <- what the heck?!? So no data for decoding and really no idea left how to get those informations.... WHAA!

I make desperate efforts but i cant get into that...

At least i need another hint. Im not asking for complete solution - its enough to know roughly the right way!
</pre>
          </blockquote>
          <pre wrap="">>From what I think I understood extradata contains what you expect when your source is a video format with a global header. 

What's the source format you use for your tests?


_______________________________________________
Libav-user mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://ffmpeg.org/mailman/listinfo/libav-user">http://ffmpeg.org/mailman/listinfo/libav-user</a>

</pre>
        </blockquote>
        I create dummy images (should be replaced later on) and encoding
        them to x264 frames. Further i stream those images via rtsp
        which is working on VLC but not on android and i thinks its a
        stream configuration problem.<br>
        <br>
        When should extradata be filled? In my text a dont encode a
        frame before i try to get the sps pps infos out of extradata. I
        may have to call a special function or encode a frame or header
        before?<br>
        <br>
        So my source format is:<br>
        <br>
        <small><small>    codec = avcodec_find_encoder(c->codec_id);<br>
                if(!codec)<br>
                {<br>
                    std::cout << "Codec not found." <<
            std::endl;<br>
                    std::cin.get();std::cin.get();exit(1);<br>
                }<br>
            <br>
                <b>if(avcodec_get_context_defaults3 (c, codec) < 0)
              // cause i dont know a working x264 configuration without
              deprecated flags </b><br>
                {<br>
                    std::cout << "Cannot get default codec
            context! \n" << std::endl;<br>
                    std::cin.get();<br>
                    exit(1);<br>
                }</small></small><br>
        <br>
        and<br>
        <br>
        <small><small>    codec = stream->codec;<br>
                codec->codec_id = codecID;<br>
                codec->codec_type = AVMEDIA_TYPE_VIDEO;<br>
                codec->bit_rate = mParameters.mBitRate;<br>
                codec->width = mParameters.mWidth;<br>
                codec->height = mParameters.mHeight;<br>
                codec->time_base.den = mParameters.mFrameRate;<br>
                codec->time_base.num = 1;<br>
                codec->gop_size = mParameters.mFrameRate; <br>
                codec->pix_fmt = PIXEL_FORMAT;<br>
                codec->b_frame_strategy = 0;<br>
                codec->level = 12;<br>
                if(codec->codec_id == CODEC_ID_MPEG2VIDEO)<br>
                    codec->max_b_frames = 2; // for testing, B frames<br>
            <br>
                if(codec->codec_id == CODEC_ID_MPEG1VIDEO)<br>
                    codec->mb_decision = 2;<br>
            <br>
                if(context->oformat->flags &
            AVFMT_GLOBALHEADER)<br>
                    codec->flags |= CODEC_FLAG_GLOBAL_HEADER;</small></small><br>
        <br>
        where mParamters are:<br>
        <br>
        <small><small>  imLiveStreamParameters param;<br>
              param.mBitRate = 4000;<br>
              param.mCodec = "x264";<br>
              param.mFrameRate = 24;<br>
              param.mHeight = 240;<br>
              param.mWidth = 320;</small></small><br>
        <br>
        Thank you for your reply!<br>
        <br>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
Libav-user mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://ffmpeg.org/mailman/listinfo/libav-user">http://ffmpeg.org/mailman/listinfo/libav-user</a>
</pre>
      </blockquote>
      I figured out that if i add  c->flags |=
      CODEC_FLAG_GLOBAL_HEADER; for my video codec configuration
      AVCodecContext.extradata.size is bigger than 0. <br>
      Whats a reason for dont using global headers?<br>
      <br>
      Further i tried the av_sdp_create function again and now i get a
      string containing "sprop-parameter-sets". My rtsp server accept
      the sdp string but the vlc cant play my stream. But i will ask the
      live555 mailing list for that!<br>
      <br>
      Are there other aspects i have to consider using global header
      with x264 encoding (other configurations)?<br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Libav-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Libav-user@ffmpeg.org">Libav-user@ffmpeg.org</a>
<a class="moz-txt-link-freetext" href="http://ffmpeg.org/mailman/listinfo/libav-user">http://ffmpeg.org/mailman/listinfo/libav-user</a>
</pre>
    </blockquote>
    <br>
    I finally got it. The created sdp-line is working as expected. I had
    to create a substring and only parsing the "bytestream" of the
    sprop-parameter-sets without the qualifier "sprop-parameter-sets=".
    But thats nothing about libav.<br>
    <br>
    Thanks for reading,<br>
    best regards,<br>
    Christian<br>
    <br>
  </body>
</html>