Commit 3d052c60 authored by Nirbheek Chauhan's avatar Nirbheek Chauhan

repacketizer_demo: check for read errors to fix compiler warnings

Actually check for read errors instead of just storing the
return value in a variable that then never gets checked.

Also fixes "conversion from 'size_t' to 'int', possible loss
of data" compiler warnings on Windows with MSVC caused by
storing the size_t returned by fread() into an int variable.
parent bfc69b7a
...@@ -119,7 +119,19 @@ int main(int argc, char *argv[]) ...@@ -119,7 +119,19 @@ int main(int argc, char *argv[])
for (i=0;i<nb_packets;i++) for (i=0;i<nb_packets;i++)
{ {
unsigned char ch[4]; unsigned char ch[4];
err = fread(ch, 1, 4, fin); if (fread(ch, 1, 4, fin)!=4)
{
if (feof(fin))
{
eof = 1;
} else {
fprintf(stderr, "Error reading payload length.\n");
fclose(fin);
fclose(fout);
return EXIT_FAILURE;
}
break;
}
len[i] = char_to_int(ch); len[i] = char_to_int(ch);
/*fprintf(stderr, "in len = %d\n", len[i]);*/ /*fprintf(stderr, "in len = %d\n", len[i]);*/
if (len[i]>1500 || len[i]<0) if (len[i]>1500 || len[i]<0)
...@@ -135,13 +147,31 @@ int main(int argc, char *argv[]) ...@@ -135,13 +147,31 @@ int main(int argc, char *argv[])
} }
break; break;
} }
err = fread(ch, 1, 4, fin); if (fread(ch, 1, 4, fin)!=4)
rng[i] = char_to_int(ch);
err = fread(packets[i], 1, len[i], fin);
if (feof(fin))
{ {
eof = 1; if (feof(fin))
break; {
eof = 1;
} else {
fprintf(stderr, "Error reading.\n");
fclose(fin);
fclose(fout);
return EXIT_FAILURE;
}
break;
}
rng[i] = char_to_int(ch);
if (fread(packets[i], len[i], 1, fin)!=1) {
if (feof(fin))
{
eof = 1;
} else {
fprintf(stderr, "Error reading packet of %u bytes.\n", len[i]);
fclose(fin);
fclose(fout);
return EXIT_FAILURE;
}
break;
} }
err = opus_repacketizer_cat(rp, packets[i], len[i]); err = opus_repacketizer_cat(rp, packets[i], len[i]);
if (err!=OPUS_OK) if (err!=OPUS_OK)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment