MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / decode_subpacket

Function decode_subpacket

libavcodec/cook.c:953–987  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

951
952
953static void decode_subpacket(COOKContext *q, COOKSubpacket* p, const uint8_t *inbuffer, int16_t *outbuffer) {
954 int sub_packet_size = p->size;
955 /* packet dump */
956// for (i=0 ; i<sub_packet_size ; i++) {
957// av_log(q->avctx, AV_LOG_ERROR, "%02x", inbuffer[i]);
958// }
959// av_log(q->avctx, AV_LOG_ERROR, "\n");
960 memset(q->decode_buffer_1,0,sizeof(q->decode_buffer_1));
961 decode_bytes_and_gain(q, p, inbuffer, &p->gains1);
962
963 if (p->joint_stereo) {
964 joint_decode(q, p, q->decode_buffer_1, q->decode_buffer_2);
965 } else {
966 mono_decode(q, p, q->decode_buffer_1);
967
968 if (p->num_channels == 2) {
969 decode_bytes_and_gain(q, p, inbuffer + sub_packet_size/2, &p->gains2);
970 mono_decode(q, p, q->decode_buffer_2);
971 }
972 }
973
974 mlt_compensate_output(q, q->decode_buffer_1, &p->gains1,
975 p->mono_previous_buffer1, outbuffer, p->ch_idx);
976
977 if (p->num_channels == 2) {
978 if (p->joint_stereo) {
979 mlt_compensate_output(q, q->decode_buffer_2, &p->gains1,
980 p->mono_previous_buffer2, outbuffer, p->ch_idx + 1);
981 } else {
982 mlt_compensate_output(q, q->decode_buffer_2, &p->gains2,
983 p->mono_previous_buffer2, outbuffer, p->ch_idx + 1);
984 }
985 }
986
987}
988
989
990/**

Callers 1

cook_decode_frameFunction · 0.85

Calls 4

decode_bytes_and_gainFunction · 0.85
joint_decodeFunction · 0.85
mono_decodeFunction · 0.85
mlt_compensate_outputFunction · 0.85

Tested by

no test coverage detected