Hi ,You need to provide a seek function in the last parameter of init_put_byte.Best RegardsRaja --- On Mon, 20/7/09, jacob jacob <[email protected]> wrote:
From: jacob jacob <[email protected]> Subject: Re: [libav-user] av_open_input_stream returns -1 To: "Libav* user questions and discussions" <[email protected]> Date: Monday, 20 July, 2009, 5:43 AM I changed it to rb ( however it's right, it didn't change the result at this point ) I tracked the data and wrote it to another file to check what's going on. But i still get the same result. ByteIOContext is still free.. int read_data(void *opaque, uint8_t *buf, int buf_size){ int static zozo=0; zozo++; FILE * fp = (FILE *) opaque; if(!fp){ return -1; } int cnt = fread(buf, sizeof(uint8_t), buf_size, fp); NSLog(@"cnt: %d",cnt); if(zozo==1){ FILE *zp=fopen("firsttest.txt", "w+b"); fwrite(buf,cnt,1,zp); fclose(zp); } if(zozo==2){ FILE *zp=fopen("secondtest.txt", "w+b"); fwrite(buf,cnt,1,zp); fclose(zp); } return cnt; } 2009/7/20 avcoder <[email protected]>: > try : > > FILE * fp = fopen("79.wma", "rb"); > > On Mon, Jul 20, 2009 at 2:16 AM, jacob jacob<[email protected]> wrote: >> /* >> >> i have a problem related to av_open_input_stream usage. >> it returns -1 and when i trace it in detail, read_header in asf.c returns -1 >> when comparing headers (GUID information). >> >> it seems like my ByteIOContext is empty.. >> >> i don't know why.. >> >> */ >> >> int read_data(void *opaque, uint8_t *buf, int buf_size){ >> >> printf("it is here. buf_size. %d",buf_size); >> >> >> FILE * fp = (FILE *) opaque; >> if (!fp) >> { >> return -1; >> } >> >> int cnt = fread(buf, sizeof(uint8_t), buf_size, fp); >> >> return cnt; >> >> } >> >> void doit(){ >> >> FILE * fp = fopen("79.wma", "r"); >> >> >> >> >> >> avcodec_init(); >> avcodec_register_all(); >> av_register_all(); >> >> >> >> >> >> >> uint8_t pDataBuffer[2048]; >> long lSize = 2048; >> >> read_data(fp, pDataBuffer, lSize); >> >> >> AVProbeData pd; >> pd.buf = pDataBuffer; >> pd.buf_size = lSize; >> pd.filename = ""; >> >> AVInputFormat* pAVInputFormat = av_probe_input_format(&pd, 1); >> if(!pAVInputFormat) >> { >> printf("something 0"); >> return; >> } >> pAVInputFormat->flags |= AVFMT_NOFILE; >> >> ByteIOContext ByteIOCtx; >> if(init_put_byte(&ByteIOCtx, pDataBuffer, lSize, 0, fp, read_data, >> NULL, NULL) < 0) >> { >> printf("something 1"); >> return ; >> } >> >> AVFormatContext* pFormatCtx; >> >> >> if(av_open_input_stream(&pFormatCtx, &ByteIOCtx, "", pAVInputFormat, >> NULL) < 0) >> { >> printf("something 2"); >> return ; >> } >> >> if(av_find_stream_info(pFormatCtx) < 0) >> { >> printf("something 3"); >> return ; >> } >> >> printf("something 4"); >> >> } >> _______________________________________________ >> libav-user mailing list >> [email protected] >> https://lists.mplayerhq.hu/mailman/listinfo/libav-user >> > > > > -- > ----------------------------------------------------------------------------------------- > My key fingerprint: d1:03:f5:32:26:ff:d7:3c:e4:42:e3:51:ec:92:78:b2 > Inspired by http://www.nextplayer.net. Your potential. Our passion. > _______________________________________________ > libav-user mailing list > [email protected] > https://lists.mplayerhq.hu/mailman/listinfo/libav-user > _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user Yahoo! recommends that you upgrade to the new and safer Internet Explorer 8. http://downloads.yahoo.com/in/internetexplorer/ _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
