I tried to play low bitrate Ogg Vorbis files on my iFP-790. The results are quite interesting. It seems that it uses the Tremor decoder http://www.xiph.org/ogg/vorbis/ and the bitrate is computed by its ov_bitrate function. This function can be fooled in two ways with specially crafted files. The first way is to change granule position of pages to make the decoder think that the total time of the song is shorter and the bitrate is higher than the lower limit. The second way is to append a file with broken headers, which causes the decoder to think that sum of logical bitstreams lengths is bigger than it actualy is (the decoder puts -1 to the starting offset of the second stream). Interested readers should read the Ogg Vorbis specification and Tremor source code to find the details.
It seems that the player just compares the computed bitrate with the limits and refuses to play the file if it is out of the range. Fooling the ov_bitrate function does not work however, because the player computes the total time of the song from the bitrate and the size of the file (it could use the same routine that the ov_bitrate function uses, but apparently it doesn't) and it plays only for that time, so better compressed files are not fully played. Appending some garbage to the file increases the play time, which confirms that the player uses the physical size of the file to compute the play time.
There is one reason not to play some Ogg Vorbis files. Some of them use big window sizes (the size of a chunk of music processed in one step) which requires more memory to decode. It is not directly related to the bitrate, the Ogg Vorbis encoder (from xiph.org) uses bigger windows only in very low quality settings (-q -1 or something like that). I do not know why the player checks the bitrate and not just the window sizes. Used window sizes are stored in the headers and it is not more difficult to check them than to compute the bitrate.
I suppose the firmware could be easily hacked to enhance the limits, but apparently noone has descrambled the firmware to the iFP players.
I tried to play low bitrate Ogg Vorbis files on my iFP-790. The results are quite interesting. It seems that it uses the Tremor decoder http://www.xiph.org/ogg/vorbis/ and the bitrate is computed by its ov_bitrate function. This function can be fooled in two ways with specially crafted files. The first way is to change granule position of pages to make the decoder think that the total time of the song is shorter and the bitrate is higher than the lower limit. The second way is to append a file with broken headers, which causes the decoder to think that sum of logical bitstreams lengths is bigger than it actualy is (the decoder puts -1 to the starting offset of the second stream). Interested readers should read the Ogg Vorbis specification and Tremor source code to find the details.
It seems that the player just compares the computed bitrate with the limits and refuses to play the file if it is out of the range. Fooling the ov_bitrate function does not work however, because the player computes the total time of the song from the bitrate and the size of the file (it could use the same routine that the ov_bitrate function uses, but apparently it doesn't) and it plays only for that time, so better compressed files are not fully played. Appending some garbage to the file increases the play time, which confirms that the player uses the physical size of the file to compute the play time.
There is one reason not to play some Ogg Vorbis files. Some of them use big window sizes (the size of a chunk of music processed in one step) which requires more memory to decode. It is not directly related to the bitrate, the Ogg Vorbis encoder (from xiph.org) uses bigger windows only in very low quality settings (-q -1 or something like that). I do not know why the player checks the bitrate and not just the window sizes. Used window sizes are stored in the headers and it is not more difficult to check them than to compute the bitrate.
I suppose the firmware could be easily hacked to enhance the limits, but apparently noone has descrambled the firmware to the iFP players.