--- On Fri, 12/6/09, anand saggi <[email protected]> wrote:


From: anand saggi <[email protected]>
Subject: [libav-user] Correct usage of "av_open_input_stream" ?
To: [email protected]
Date: Friday, 12 June, 2009, 2:54 PM


Hi,

I am trying to encode  buffered raw image into an .mpeg video. searching
through the forums I found out to
make my own url protocol an register it with ffmpeg.Since I am new to
FFMPEG, I tried it out and its not working.

Could someone please suggest me where I am wrong, the code snippet is:

/*=====================================================================================*/
AVProbeData *pd;
int n;
register_protocol(&hpany_protocol);

     fill_yuv_image(tmp_picture, 0, 640, 480); //I am trying to encode the
tmp_picture->data, taking it as a raw buffer for testing, taken from
output_example.c

     pd = (AVProbeData *)malloc(sizeof(AVProbeData));
     pd->buf_size = 3200;
     pd->buf = (unsigned char *)malloc(pd->buf_size);
     pd->filename = "__url_prot";

    if((n = hpany_write(pd,(unsigned char
*)tmp_picture->data,sizeof(tmp_picture->data))) <
sizeof(tmp_picture->data)){
    printf("\nOPEN_VID: Error in Hpany_write");
    return TRANS_FAILURE;
    }


    n = init_put_byte(&s, pd->buf, pd->buf_size, 1, NULL, NULL, NULL, NULL);
The error is in the above line where no read callback is provided,all callback 
are NULL.


    if (n != 0){
    printf("\nOPEN_VID: Error in init_put_byte");
    return TRANS_FAILURE;
    }

    if((m_pInputFormat = av_probe_input_format(pd, 1))==NULL){
    printf("\nOPEN_VID: Error in av_probe_input_format");
    return TRANS_FAILURE;
    }

    s.is_streamed = 1;

    if((av_open_input_stream(&oc, &s, "", m_pInputFormat, NULL))== NULL){
    printf("\nError in opening Input stream");
        return  TRANS_FAILURE;
    }
/*===========================================================
Where the hpany_write is:
=============================================================*/
{
printf("\nsize of raw data = %d, size of buf= %d\n",size,h->buf_size);

printf("\nRaw Data = %s",raw_data);

memcpy(h->buf, raw_data, size);

printf("\nBuf Data = %s",h->buf);

return size;
}


/*=================================================================
The op I get is something like:
==================================================================*/

Output #0, avi, to 'op.mpg':
Stream #0.0: Video: mpeg2video, yuv420p, 288x288, q=2-31, 2000 kb/s, 25.00 t
b(c)

In Hpany Write
size of raw data = 16, size of buf= 3200

Raw Data = P
Buf Data = P
OPEN_VID: Error in av_probe_input_formatAPP:Error in Open Video


Thanks
Anand
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user



      Bring your gang together. Do your thing. Find your favourite Yahoo! group 
at http://in.promos.yahoo.com/groups/
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to