[Libav-user] Converting audio sample format from s32le to f32le using libswresample/av_convert
Haridas Sagar N
haridassagarn at tataelxsi.co.in
Sun Feb 24 14:39:25 CET 2013
Hello Everyone,
I am new to ffmpeg and I am working on AAC encoder, I tried encoding the pcm sample having f32le sample format but whatever the pcm sample format i am having is s32le so i need to convert it to f32le,I tried with ffmpeg's resampling_audio.c example and i have modified the code to take pcm file as input.. but the output file size is always ~=11000 bytes and it is not playing
Also i tried with very the following code but swr_convert() is returning -22 and i am not sure what ever code i got/written is correct...
Here is the sample code i am trying currently
int main(int argc, char **argv)
{
uint8_t *dst,*dstp;
uint8_t *outbuf;
int ret;
size_t bufsize;
FILE *fp=NULL;
FILE *fout=NULL;
struct SwrContext *ctx = NULL;
char *filename=argv[1];
fp = fopen("FLTP1.pcm","rb");
fout = fopen(filename,"wb");
if (fseek(fp, 0L, SEEK_END) == 0)
bufsize=ftell(fp);
fseek(fp, 0L, SEEK_SET);
printf(" buf size is %d\n",bufsize);
dstp=( uint8_t *)malloc(sizeof(uint8_t) * (bufsize + 1));
outbuf=( uint8_t *)malloc(sizeof(uint32_t) * (bufsize*1000 + 1));
dstp=dst;
while(!feof(fp))
{
printf(" reading samples from file\n");
ret=fread(&dstp,1,4,fp);
dst++;
printf(" return value is %d\n",ret);
}
//dst=dstp;
ctx = swr_alloc_set_opts(ctx,AV_CH_LAYOUT_STEREO,AV_SAMPLE_FMT_S32,48000,
AV_CH_LAYOUT_STEREO,AV_SAMPLE_FMT_FLTP,44100,0,0);
if(swr_init(ctx) < 0)
return -1;
printf(" converting\n");
int resample_samples = swr_convert(ctx,(uint8_t**)&outbuf,bufsize*1000,
(const uint8_t**)&dst,bufsize);
printf(" return value is %d\n",resample_samples);
printf(" writing to file\n");
fwrite(outbuf,resample_samples,1,fout);
printf(" wrote to file\n");
//free(&outbuf);
//free(&dstp);
swr_free(&ctx);
return 0;
}
It will be of great help to me if you provide me with any suggestions/help
Thanks in advance
Best regards
Haridas Sagar N
Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20130224/a11d8b93/attachment.html>
More information about the Libav-user
mailing list