comparison svq1.c @ 2214:de5ed621effc libavcodec

try to select w/h from tables
author alex
date Wed, 08 Sep 2004 17:57:25 +0000
parents e0d88f21d864
children 5b3dfc4103b9
comparison
equal deleted inserted replaced
2213:c17d0cbbdf66 2214:de5ed621effc
878 return 0; 878 return 0;
879 } 879 }
880 880
881 static void svq1_write_header(SVQ1Context *s, int frame_type) 881 static void svq1_write_header(SVQ1Context *s, int frame_type)
882 { 882 {
883 int i;
884
883 /* frame code */ 885 /* frame code */
884 put_bits(&s->pb, 22, 0x20); 886 put_bits(&s->pb, 22, 0x20);
885 887
886 /* temporal reference (sure hope this is a "don't care") */ 888 /* temporal reference (sure hope this is a "don't care") */
887 put_bits(&s->pb, 8, 0x00); 889 put_bits(&s->pb, 8, 0x00);
896 /* no embedded string either */ 898 /* no embedded string either */
897 899
898 /* output 5 unknown bits (2 + 2 + 1) */ 900 /* output 5 unknown bits (2 + 2 + 1) */
899 put_bits(&s->pb, 5, 0); 901 put_bits(&s->pb, 5, 0);
900 902
901 /* forget about matching up resolutions, just use the free-form 903 for (i = 0; i < 7; i++)
902 * resolution code (7) for now */ 904 {
903 put_bits(&s->pb, 3, 7); 905 if ((svq1_frame_size_table[i].width == s->frame_width) &&
904 put_bits(&s->pb, 12, s->frame_width); 906 (svq1_frame_size_table[i].height == s->frame_height))
905 put_bits(&s->pb, 12, s->frame_height); 907 {
906 908 put_bits(&s->pb, 3, i);
909 break;
910 }
911 }
912
913 if (i == 7)
914 {
915 put_bits(&s->pb, 3, 7);
916 put_bits(&s->pb, 12, s->frame_width);
917 put_bits(&s->pb, 12, s->frame_height);
918 }
907 } 919 }
908 920
909 /* no checksum or extra data (next 2 bits get 0) */ 921 /* no checksum or extra data (next 2 bits get 0) */
910 put_bits(&s->pb, 2, 0); 922 put_bits(&s->pb, 2, 0);
911 } 923 }