Originally committed as revision 14204 to svn://svn.ffmpeg.org/ffmpeg/trunk
Ramiro Polla authored on 2008/07/13 23:27:48... | ... |
@@ -563,7 +563,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, |
563 | 563 |
//Init the encoder state |
564 | 564 |
for(i=0; i<avctx->channels; i++){ |
565 | 565 |
c->status[i].step_index = av_clip(c->status[i].step_index, 0, 63); // clip step so it fits 6 bits |
566 |
- put_bits(&pb, 16, samples[i] & 0xFFFF); |
|
566 |
+ put_sbits(&pb, 16, samples[i]); |
|
567 | 567 |
put_bits(&pb, 6, c->status[i].step_index); |
568 | 568 |
c->status[i].prev_sample = (signed short)samples[i]; |
569 | 569 |
} |
... | ... |
@@ -166,7 +166,7 @@ static inline void asv1_put_level(PutBitContext *pb, int level){ |
166 | 166 |
if(index <= 6) put_bits(pb, level_tab[index][1], level_tab[index][0]); |
167 | 167 |
else{ |
168 | 168 |
put_bits(pb, level_tab[3][1], level_tab[3][0]); |
169 |
- put_bits(pb, 8, level&0xFF); |
|
169 |
+ put_sbits(pb, 8, level); |
|
170 | 170 |
} |
171 | 171 |
} |
172 | 172 |
|
... | ... |
@@ -315,6 +315,13 @@ static inline void put_bits(PutBitContext *s, int n, unsigned int value) |
315 | 315 |
} |
316 | 316 |
#endif |
317 | 317 |
|
318 |
+static inline void put_sbits(PutBitContext *pb, int bits, int32_t val) |
|
319 |
+{ |
|
320 |
+ assert(bits >= 0 && bits <= 31); |
|
321 |
+ |
|
322 |
+ put_bits(pb, bits, val & ((1<<bits)-1)); |
|
323 |
+} |
|
324 |
+ |
|
318 | 325 |
|
319 | 326 |
static inline uint8_t* pbBufPtr(PutBitContext *s) |
320 | 327 |
{ |
... | ... |
@@ -1236,13 +1236,6 @@ static void channel_decorrelation(FlacEncodeContext *ctx) |
1236 | 1236 |
} |
1237 | 1237 |
} |
1238 | 1238 |
|
1239 |
-static void put_sbits(PutBitContext *pb, int bits, int32_t val) |
|
1240 |
-{ |
|
1241 |
- assert(bits >= 0 && bits <= 31); |
|
1242 |
- |
|
1243 |
- put_bits(pb, bits, val & ((1<<bits)-1)); |
|
1244 |
-} |
|
1245 |
- |
|
1246 | 1239 |
static void write_utf8(PutBitContext *pb, uint32_t val) |
1247 | 1240 |
{ |
1248 | 1241 |
uint8_t tmp; |
... | ... |
@@ -61,7 +61,7 @@ void ff_h261_encode_picture_header(MpegEncContext * s, int picture_number){ |
61 | 61 |
|
62 | 62 |
temp_ref= s->picture_number * (int64_t)30000 * s->avctx->time_base.num / |
63 | 63 |
(1001 * (int64_t)s->avctx->time_base.den); //FIXME maybe this should use a timestamp |
64 |
- put_bits(&s->pb, 5, temp_ref & 0x1f); /* TemporalReference */ |
|
64 |
+ put_sbits(&s->pb, 5, temp_ref); /* TemporalReference */ |
|
65 | 65 |
|
66 | 66 |
put_bits(&s->pb, 1, 0); /* split screen off */ |
67 | 67 |
put_bits(&s->pb, 1, 0); /* camera off */ |
... | ... |
@@ -309,7 +309,7 @@ static void h261_encode_block(H261Context * h, DCTELEM * block, int n){ |
309 | 309 |
put_bits(&s->pb, 6, run); |
310 | 310 |
assert(slevel != 0); |
311 | 311 |
assert(level <= 127); |
312 |
- put_bits(&s->pb, 8, slevel & 0xff); |
|
312 |
+ put_sbits(&s->pb, 8, slevel); |
|
313 | 313 |
} else { |
314 | 314 |
put_bits(&s->pb, 1, sign); |
315 | 315 |
} |
... | ... |
@@ -249,7 +249,7 @@ void h263_encode_picture_header(MpegEncContext * s, int picture_number) |
249 | 249 |
put_bits(&s->pb, 22, 0x20); /* PSC */ |
250 | 250 |
temp_ref= s->picture_number * (int64_t)coded_frame_rate * s->avctx->time_base.num / //FIXME use timestamp |
251 | 251 |
(coded_frame_rate_base * (int64_t)s->avctx->time_base.den); |
252 |
- put_bits(&s->pb, 8, temp_ref & 0xff); /* TemporalReference */ |
|
252 |
+ put_sbits(&s->pb, 8, temp_ref); /* TemporalReference */ |
|
253 | 253 |
|
254 | 254 |
put_bits(&s->pb, 1, 1); /* marker */ |
255 | 255 |
put_bits(&s->pb, 1, 0); /* h263 id */ |
... | ... |
@@ -326,7 +326,7 @@ void h263_encode_picture_header(MpegEncContext * s, int picture_number) |
326 | 326 |
put_bits(&s->pb, 1, best_clock_code); |
327 | 327 |
put_bits(&s->pb, 7, best_divisor); |
328 | 328 |
} |
329 |
- put_bits(&s->pb, 2, (temp_ref>>8)&3); |
|
329 |
+ put_sbits(&s->pb, 2, temp_ref>>8); |
|
330 | 330 |
} |
331 | 331 |
|
332 | 332 |
/* Unlimited Unrestricted Motion Vectors Indicator (UUI) */ |
... | ... |
@@ -2224,11 +2224,11 @@ static void h263_encode_block(MpegEncContext * s, DCTELEM * block, int n) |
2224 | 2224 |
assert(slevel != 0); |
2225 | 2225 |
|
2226 | 2226 |
if(level < 128) |
2227 |
- put_bits(&s->pb, 8, slevel & 0xff); |
|
2227 |
+ put_sbits(&s->pb, 8, slevel); |
|
2228 | 2228 |
else{ |
2229 | 2229 |
put_bits(&s->pb, 8, 128); |
2230 |
- put_bits(&s->pb, 5, slevel & 0x1f); |
|
2231 |
- put_bits(&s->pb, 6, (slevel>>5)&0x3f); |
|
2230 |
+ put_sbits(&s->pb, 5, slevel); |
|
2231 |
+ put_sbits(&s->pb, 6, slevel>>5); |
|
2232 | 2232 |
} |
2233 | 2233 |
}else{ |
2234 | 2234 |
if(level < 64) { // 7-bit level |
... | ... |
@@ -2236,14 +2236,14 @@ static void h263_encode_block(MpegEncContext * s, DCTELEM * block, int n) |
2236 | 2236 |
put_bits(&s->pb, 1, last); |
2237 | 2237 |
put_bits(&s->pb, 6, run); |
2238 | 2238 |
|
2239 |
- put_bits(&s->pb, 7, slevel & 0x7f); |
|
2239 |
+ put_sbits(&s->pb, 7, slevel); |
|
2240 | 2240 |
} else { |
2241 | 2241 |
/* 11-bit level */ |
2242 | 2242 |
put_bits(&s->pb, 1, 1); |
2243 | 2243 |
put_bits(&s->pb, 1, last); |
2244 | 2244 |
put_bits(&s->pb, 6, run); |
2245 | 2245 |
|
2246 |
- put_bits(&s->pb, 11, slevel & 0x7ff); |
|
2246 |
+ put_sbits(&s->pb, 11, slevel); |
|
2247 | 2247 |
} |
2248 | 2248 |
} |
2249 | 2249 |
} else { |
... | ... |
@@ -2804,7 +2804,7 @@ static inline void mpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n |
2804 | 2804 |
put_bits(ac_pb, 1, last); |
2805 | 2805 |
put_bits(ac_pb, 6, run); |
2806 | 2806 |
put_bits(ac_pb, 1, 1); |
2807 |
- put_bits(ac_pb, 12, slevel & 0xfff); |
|
2807 |
+ put_sbits(ac_pb, 12, slevel); |
|
2808 | 2808 |
put_bits(ac_pb, 1, 1); |
2809 | 2809 |
} else { |
2810 | 2810 |
/* second escape */ |
... | ... |
@@ -369,7 +369,7 @@ void ff_mjpeg_encode_dc(MpegEncContext *s, int val, |
369 | 369 |
|
370 | 370 |
put_bits(&s->pb, huff_size[nbits], huff_code[nbits]); |
371 | 371 |
|
372 |
- put_bits(&s->pb, nbits, mant & ((1 << nbits) - 1)); |
|
372 |
+ put_sbits(&s->pb, nbits, mant); |
|
373 | 373 |
} |
374 | 374 |
} |
375 | 375 |
|
... | ... |
@@ -421,7 +421,7 @@ static void encode_block(MpegEncContext *s, DCTELEM *block, int n) |
421 | 421 |
|
422 | 422 |
put_bits(&s->pb, huff_size_ac[code], huff_code_ac[code]); |
423 | 423 |
|
424 |
- put_bits(&s->pb, nbits, mant & ((1 << nbits) - 1)); |
|
424 |
+ put_sbits(&s->pb, nbits, mant); |
|
425 | 425 |
run = 0; |
426 | 426 |
} |
427 | 427 |
} |
... | ... |
@@ -184,7 +184,7 @@ static void put_header(MpegEncContext *s, int header) |
184 | 184 |
{ |
185 | 185 |
align_put_bits(&s->pb); |
186 | 186 |
put_bits(&s->pb, 16, header>>16); |
187 |
- put_bits(&s->pb, 16, header&0xFFFF); |
|
187 |
+ put_sbits(&s->pb, 16, header); |
|
188 | 188 |
} |
189 | 189 |
|
190 | 190 |
/* put sequence header if needed */ |
... | ... |
@@ -206,8 +206,8 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) |
206 | 206 |
/* mpeg1 header repeated every gop */ |
207 | 207 |
put_header(s, SEQ_START_CODE); |
208 | 208 |
|
209 |
- put_bits(&s->pb, 12, s->width & 0xFFF); |
|
210 |
- put_bits(&s->pb, 12, s->height & 0xFFF); |
|
209 |
+ put_sbits(&s->pb, 12, s->width ); |
|
210 |
+ put_sbits(&s->pb, 12, s->height); |
|
211 | 211 |
|
212 | 212 |
for(i=1; i<15; i++){ |
213 | 213 |
float error= aspect_ratio; |
... | ... |
@@ -242,9 +242,9 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) |
242 | 242 |
vbv_buffer_size = (( 20 * s->bit_rate) / (1151929 / 2)) * 8 * 1024; |
243 | 243 |
vbv_buffer_size= (vbv_buffer_size + 16383) / 16384; |
244 | 244 |
|
245 |
- put_bits(&s->pb, 18, v & 0x3FFFF); |
|
245 |
+ put_sbits(&s->pb, 18, v); |
|
246 | 246 |
put_bits(&s->pb, 1, 1); /* marker */ |
247 |
- put_bits(&s->pb, 10, vbv_buffer_size & 0x3FF); |
|
247 |
+ put_sbits(&s->pb, 10, vbv_buffer_size); |
|
248 | 248 |
|
249 | 249 |
constraint_parameter_flag= |
250 | 250 |
s->width <= 768 && s->height <= 576 && |
... | ... |
@@ -557,7 +557,7 @@ static av_always_inline void mpeg1_encode_mb_internal(MpegEncContext *s, |
557 | 557 |
put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp][1], ff_mpeg12_mbPatTable[cbp][0]); |
558 | 558 |
} else { |
559 | 559 |
put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp>>2][1], ff_mpeg12_mbPatTable[cbp>>2][0]); |
560 |
- put_bits(&s->pb, 2, cbp & 3); |
|
560 |
+ put_sbits(&s->pb, 2, cbp); |
|
561 | 561 |
} |
562 | 562 |
} |
563 | 563 |
s->f_count++; |
... | ... |
@@ -640,7 +640,7 @@ static av_always_inline void mpeg1_encode_mb_internal(MpegEncContext *s, |
640 | 640 |
put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp][1], ff_mpeg12_mbPatTable[cbp][0]); |
641 | 641 |
} else { |
642 | 642 |
put_bits(&s->pb, ff_mpeg12_mbPatTable[cbp>>2][1], ff_mpeg12_mbPatTable[cbp>>2][0]); |
643 |
- put_bits(&s->pb, 2, cbp & 3); |
|
643 |
+ put_sbits(&s->pb, 2, cbp); |
|
644 | 644 |
} |
645 | 645 |
} |
646 | 646 |
} |
... | ... |
@@ -908,16 +908,16 @@ static void mpeg1_encode_block(MpegEncContext *s, |
908 | 908 |
put_bits(&s->pb, 6, run); |
909 | 909 |
if(s->codec_id == CODEC_ID_MPEG1VIDEO){ |
910 | 910 |
if (alevel < 128) { |
911 |
- put_bits(&s->pb, 8, level & 0xff); |
|
911 |
+ put_sbits(&s->pb, 8, level); |
|
912 | 912 |
} else { |
913 | 913 |
if (level < 0) { |
914 | 914 |
put_bits(&s->pb, 16, 0x8001 + level + 255); |
915 | 915 |
} else { |
916 |
- put_bits(&s->pb, 16, level & 0xffff); |
|
916 |
+ put_sbits(&s->pb, 16, level); |
|
917 | 917 |
} |
918 | 918 |
} |
919 | 919 |
}else{ |
920 |
- put_bits(&s->pb, 12, level & 0xfff); |
|
920 |
+ put_sbits(&s->pb, 12, level); |
|
921 | 921 |
} |
922 | 922 |
} |
923 | 923 |
last_non_zero = i; |
... | ... |
@@ -265,7 +265,7 @@ void rv20_encode_picture_header(MpegEncContext *s, int picture_number){ |
265 | 265 |
put_bits(&s->pb, 1, 0); /* unknown bit */ |
266 | 266 |
put_bits(&s->pb, 5, s->qscale); |
267 | 267 |
|
268 |
- put_bits(&s->pb, 8, picture_number&0xFF); //FIXME wrong, but correct is not known |
|
268 |
+ put_sbits(&s->pb, 8, picture_number); //FIXME wrong, but correct is not known |
|
269 | 269 |
s->mb_x= s->mb_y= 0; |
270 | 270 |
ff_h263_encode_mba(s); |
271 | 271 |
|