Lines Matching +full:aac +full:- +full:mode
17 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
43 return 256 - csum; in hdmi_infoframe_checksum()
54 * hdmi_avi_infoframe_init() - initialize an HDMI AVI infoframe
63 frame->type = HDMI_INFOFRAME_TYPE_AVI; in hdmi_avi_infoframe_init()
64 frame->version = 2; in hdmi_avi_infoframe_init()
65 frame->length = HDMI_AVI_INFOFRAME_SIZE; in hdmi_avi_infoframe_init()
72 * hdmi_avi_infoframe_pack() - write HDMI AVI infoframe to binary buffer
91 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_avi_infoframe_pack()
94 return -ENOSPC; in hdmi_avi_infoframe_pack()
96 if (frame->picture_aspect > HDMI_PICTURE_ASPECT_16_9) in hdmi_avi_infoframe_pack()
97 return -EINVAL; in hdmi_avi_infoframe_pack()
101 ptr[0] = frame->type; in hdmi_avi_infoframe_pack()
102 ptr[1] = frame->version; in hdmi_avi_infoframe_pack()
103 ptr[2] = frame->length; in hdmi_avi_infoframe_pack()
109 ptr[0] = ((frame->colorspace & 0x3) << 5) | (frame->scan_mode & 0x3); in hdmi_avi_infoframe_pack()
115 if (frame->active_aspect & 0xf) in hdmi_avi_infoframe_pack()
119 if (frame->top_bar || frame->bottom_bar) in hdmi_avi_infoframe_pack()
122 if (frame->left_bar || frame->right_bar) in hdmi_avi_infoframe_pack()
125 ptr[1] = ((frame->colorimetry & 0x3) << 6) | in hdmi_avi_infoframe_pack()
126 ((frame->picture_aspect & 0x3) << 4) | in hdmi_avi_infoframe_pack()
127 (frame->active_aspect & 0xf); in hdmi_avi_infoframe_pack()
129 ptr[2] = ((frame->extended_colorimetry & 0x7) << 4) | in hdmi_avi_infoframe_pack()
130 ((frame->quantization_range & 0x3) << 2) | in hdmi_avi_infoframe_pack()
131 (frame->nups & 0x3); in hdmi_avi_infoframe_pack()
133 if (frame->itc) in hdmi_avi_infoframe_pack()
136 ptr[3] = frame->video_code & 0x7f; in hdmi_avi_infoframe_pack()
138 ptr[4] = ((frame->ycc_quantization_range & 0x3) << 6) | in hdmi_avi_infoframe_pack()
139 ((frame->content_type & 0x3) << 4) | in hdmi_avi_infoframe_pack()
140 (frame->pixel_repeat & 0xf); in hdmi_avi_infoframe_pack()
142 ptr[5] = frame->top_bar & 0xff; in hdmi_avi_infoframe_pack()
143 ptr[6] = (frame->top_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
144 ptr[7] = frame->bottom_bar & 0xff; in hdmi_avi_infoframe_pack()
145 ptr[8] = (frame->bottom_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
146 ptr[9] = frame->left_bar & 0xff; in hdmi_avi_infoframe_pack()
147 ptr[10] = (frame->left_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
148 ptr[11] = frame->right_bar & 0xff; in hdmi_avi_infoframe_pack()
149 ptr[12] = (frame->right_bar >> 8) & 0xff; in hdmi_avi_infoframe_pack()
158 * hdmi_spd_infoframe_init() - initialize an HDMI SPD infoframe
170 frame->type = HDMI_INFOFRAME_TYPE_SPD; in hdmi_spd_infoframe_init()
171 frame->version = 1; in hdmi_spd_infoframe_init()
172 frame->length = HDMI_SPD_INFOFRAME_SIZE; in hdmi_spd_infoframe_init()
174 strncpy(frame->vendor, vendor, sizeof(frame->vendor)); in hdmi_spd_infoframe_init()
175 strncpy(frame->product, product, sizeof(frame->product)); in hdmi_spd_infoframe_init()
182 * hdmi_spd_infoframe_pack() - write HDMI SPD infoframe to binary buffer
201 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_spd_infoframe_pack()
204 return -ENOSPC; in hdmi_spd_infoframe_pack()
208 ptr[0] = frame->type; in hdmi_spd_infoframe_pack()
209 ptr[1] = frame->version; in hdmi_spd_infoframe_pack()
210 ptr[2] = frame->length; in hdmi_spd_infoframe_pack()
216 memcpy(ptr, frame->vendor, sizeof(frame->vendor)); in hdmi_spd_infoframe_pack()
217 memcpy(ptr + 8, frame->product, sizeof(frame->product)); in hdmi_spd_infoframe_pack()
219 ptr[24] = frame->sdi; in hdmi_spd_infoframe_pack()
228 * hdmi_audio_infoframe_init() - initialize an HDMI audio infoframe
237 frame->type = HDMI_INFOFRAME_TYPE_AUDIO; in hdmi_audio_infoframe_init()
238 frame->version = 1; in hdmi_audio_infoframe_init()
239 frame->length = HDMI_AUDIO_INFOFRAME_SIZE; in hdmi_audio_infoframe_init()
246 * hdmi_audio_infoframe_pack() - write HDMI audio infoframe to binary buffer
266 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_audio_infoframe_pack()
269 return -ENOSPC; in hdmi_audio_infoframe_pack()
273 if (frame->channels >= 2) in hdmi_audio_infoframe_pack()
274 channels = frame->channels - 1; in hdmi_audio_infoframe_pack()
278 ptr[0] = frame->type; in hdmi_audio_infoframe_pack()
279 ptr[1] = frame->version; in hdmi_audio_infoframe_pack()
280 ptr[2] = frame->length; in hdmi_audio_infoframe_pack()
286 ptr[0] = ((frame->coding_type & 0xf) << 4) | (channels & 0x7); in hdmi_audio_infoframe_pack()
287 ptr[1] = ((frame->sample_frequency & 0x7) << 2) | in hdmi_audio_infoframe_pack()
288 (frame->sample_size & 0x3); in hdmi_audio_infoframe_pack()
289 ptr[2] = frame->coding_type_ext & 0x1f; in hdmi_audio_infoframe_pack()
290 ptr[3] = frame->channel_allocation; in hdmi_audio_infoframe_pack()
291 ptr[4] = (frame->level_shift_value & 0xf) << 3; in hdmi_audio_infoframe_pack()
293 if (frame->downmix_inhibit) in hdmi_audio_infoframe_pack()
303 * hdmi_vendor_infoframe_init() - initialize an HDMI vendor infoframe
312 frame->type = HDMI_INFOFRAME_TYPE_VENDOR; in hdmi_vendor_infoframe_init()
313 frame->version = 1; in hdmi_vendor_infoframe_init()
315 frame->oui = HDMI_IEEE_OUI; in hdmi_vendor_infoframe_init()
321 frame->s3d_struct = HDMI_3D_STRUCTURE_INVALID; in hdmi_vendor_infoframe_init()
330 if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) in hdmi_vendor_infoframe_length()
332 else if (frame->vic != 0 || frame->s3d_struct != HDMI_3D_STRUCTURE_INVALID) in hdmi_vendor_infoframe_length()
339 * hdmi_vendor_infoframe_pack() - write a HDMI vendor infoframe to binary buffer
359 if (frame->vic != 0 && frame->s3d_struct != HDMI_3D_STRUCTURE_INVALID) in hdmi_vendor_infoframe_pack()
360 return -EINVAL; in hdmi_vendor_infoframe_pack()
362 frame->length = hdmi_vendor_infoframe_length(frame); in hdmi_vendor_infoframe_pack()
364 length = HDMI_INFOFRAME_HEADER_SIZE + frame->length; in hdmi_vendor_infoframe_pack()
367 return -ENOSPC; in hdmi_vendor_infoframe_pack()
371 ptr[0] = frame->type; in hdmi_vendor_infoframe_pack()
372 ptr[1] = frame->version; in hdmi_vendor_infoframe_pack()
373 ptr[2] = frame->length; in hdmi_vendor_infoframe_pack()
381 if (frame->s3d_struct != HDMI_3D_STRUCTURE_INVALID) { in hdmi_vendor_infoframe_pack()
383 ptr[8] = (frame->s3d_struct & 0xf) << 4; in hdmi_vendor_infoframe_pack()
384 if (frame->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) in hdmi_vendor_infoframe_pack()
385 ptr[9] = (frame->s3d_ext_data & 0xf) << 4; in hdmi_vendor_infoframe_pack()
386 } else if (frame->vic) { in hdmi_vendor_infoframe_pack()
388 ptr[8] = frame->vic; in hdmi_vendor_infoframe_pack()
400 * hdmi_vendor_any_infoframe_pack() - write a vendor infoframe to binary buffer
407 if (frame->any.oui != HDMI_IEEE_OUI) in hdmi_vendor_any_infoframe_pack()
408 return -EINVAL; in hdmi_vendor_any_infoframe_pack()
410 return hdmi_vendor_infoframe_pack(&frame->hdmi, buffer, size); in hdmi_vendor_any_infoframe_pack()
414 * hdmi_infoframe_pack() - write a HDMI infoframe to binary buffer
432 switch (frame->any.type) { in hdmi_infoframe_pack()
434 length = hdmi_avi_infoframe_pack(&frame->avi, buffer, size); in hdmi_infoframe_pack()
437 length = hdmi_spd_infoframe_pack(&frame->spd, buffer, size); in hdmi_infoframe_pack()
440 length = hdmi_audio_infoframe_pack(&frame->audio, buffer, size); in hdmi_infoframe_pack()
443 length = hdmi_vendor_any_infoframe_pack(&frame->vendor, in hdmi_infoframe_pack()
447 WARN(1, "Bad infoframe type %d\n", frame->any.type); in hdmi_infoframe_pack()
448 length = -EINVAL; in hdmi_infoframe_pack()
477 hdmi_infoframe_type_get_name(frame->type), in hdmi_infoframe_log_header()
478 frame->version, frame->length); in hdmi_infoframe_log_header()
629 return "Unknown Non-uniform Scaling"; in hdmi_nups_get_name()
669 * hdmi_avi_infoframe_log() - log info of HDMI AVI infoframe
682 hdmi_colorspace_get_name(frame->colorspace)); in hdmi_avi_infoframe_log()
683 hdmi_log(" scan mode: %s\n", in hdmi_avi_infoframe_log()
684 hdmi_scan_mode_get_name(frame->scan_mode)); in hdmi_avi_infoframe_log()
686 hdmi_colorimetry_get_name(frame->colorimetry)); in hdmi_avi_infoframe_log()
688 hdmi_picture_aspect_get_name(frame->picture_aspect)); in hdmi_avi_infoframe_log()
690 hdmi_active_aspect_get_name(frame->active_aspect)); in hdmi_avi_infoframe_log()
691 hdmi_log(" itc: %s\n", frame->itc ? "IT Content" : "No Data"); in hdmi_avi_infoframe_log()
693 hdmi_extended_colorimetry_get_name(frame->extended_colorimetry)); in hdmi_avi_infoframe_log()
695 hdmi_quantization_range_get_name(frame->quantization_range)); in hdmi_avi_infoframe_log()
696 hdmi_log(" nups: %s\n", hdmi_nups_get_name(frame->nups)); in hdmi_avi_infoframe_log()
697 hdmi_log(" video code: %u\n", frame->video_code); in hdmi_avi_infoframe_log()
699 hdmi_ycc_quantization_range_get_name(frame->ycc_quantization_range)); in hdmi_avi_infoframe_log()
701 hdmi_content_type_get_name(frame->content_type)); in hdmi_avi_infoframe_log()
702 hdmi_log(" pixel repeat: %u\n", frame->pixel_repeat); in hdmi_avi_infoframe_log()
704 frame->top_bar, frame->bottom_bar, in hdmi_avi_infoframe_log()
705 frame->left_bar, frame->right_bar); in hdmi_avi_infoframe_log()
720 return "D-VHS"; in hdmi_spd_sdi_get_name()
734 return "Blu-Ray Disc (BD)"; in hdmi_spd_sdi_get_name()
746 * hdmi_spd_infoframe_log() - log info of HDMI SPD infoframe
762 strncpy(buf, frame->vendor, 8); in hdmi_spd_infoframe_log()
764 strncpy(buf, frame->product, 16); in hdmi_spd_infoframe_log()
767 hdmi_spd_sdi_get_name(frame->sdi), frame->sdi); in hdmi_spd_infoframe_log()
779 return "AC-3"; in hdmi_audio_coding_type_get_name()
787 return "AAC"; in hdmi_audio_coding_type_get_name()
797 return "DTS-HD"; in hdmi_audio_coding_type_get_name()
860 return "HE AAC"; in hdmi_audio_coding_type_ext_get_name()
862 return "HE AAC v2"; in hdmi_audio_coding_type_ext_get_name()
866 return "MPEG-4 HE AAC"; in hdmi_audio_coding_type_ext_get_name()
868 return "MPEG-4 HE AAC v2"; in hdmi_audio_coding_type_ext_get_name()
870 return "MPEG-4 AAC LC"; in hdmi_audio_coding_type_ext_get_name()
874 return "MPEG-4 HE AAC + MPEG Surround"; in hdmi_audio_coding_type_ext_get_name()
876 return "MPEG-4 AAC LC + MPEG Surround"; in hdmi_audio_coding_type_ext_get_name()
882 * hdmi_audio_infoframe_log() - log info of HDMI AUDIO infoframe
894 if (frame->channels) in hdmi_audio_infoframe_log()
895 hdmi_log(" channels: %u\n", frame->channels - 1); in hdmi_audio_infoframe_log()
899 hdmi_audio_coding_type_get_name(frame->coding_type)); in hdmi_audio_infoframe_log()
901 hdmi_audio_sample_size_get_name(frame->sample_size)); in hdmi_audio_infoframe_log()
903 hdmi_audio_sample_frequency_get_name(frame->sample_frequency)); in hdmi_audio_infoframe_log()
905 hdmi_audio_coding_type_ext_get_name(frame->coding_type_ext)); in hdmi_audio_infoframe_log()
907 frame->channel_allocation); in hdmi_audio_infoframe_log()
909 frame->level_shift_value); in hdmi_audio_infoframe_log()
911 frame->downmix_inhibit ? "Yes" : "No"); in hdmi_audio_infoframe_log()
928 return "Side-by-side (Full)"; in hdmi_3d_structure_get_name()
932 return "L + Depth + Graphics + Graphics-depth"; in hdmi_3d_structure_get_name()
934 return "Top-and-Bottom"; in hdmi_3d_structure_get_name()
936 return "Side-by-side (Half)"; in hdmi_3d_structure_get_name()
944 * hdmi_vendor_infoframe_log() - log info of HDMI VENDOR infoframe
954 struct hdmi_vendor_infoframe *hvf = &frame->hdmi; in hdmi_vendor_any_infoframe_log()
959 if (frame->any.oui != HDMI_IEEE_OUI) { in hdmi_vendor_any_infoframe_log()
963 if (hvf->vic == 0 && hvf->s3d_struct == HDMI_3D_STRUCTURE_INVALID) { in hdmi_vendor_any_infoframe_log()
968 if (hvf->vic) in hdmi_vendor_any_infoframe_log()
969 hdmi_log(" HDMI VIC: %u\n", hvf->vic); in hdmi_vendor_any_infoframe_log()
970 if (hvf->s3d_struct != HDMI_3D_STRUCTURE_INVALID) { in hdmi_vendor_any_infoframe_log()
972 hdmi_3d_structure_get_name(hvf->s3d_struct)); in hdmi_vendor_any_infoframe_log()
973 if (hvf->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) in hdmi_vendor_any_infoframe_log()
975 hvf->s3d_ext_data); in hdmi_vendor_any_infoframe_log()
980 * hdmi_infoframe_log() - log info of HDMI infoframe
989 switch (frame->any.type) { in hdmi_infoframe_log()
991 hdmi_avi_infoframe_log(level, dev, &frame->avi); in hdmi_infoframe_log()
994 hdmi_spd_infoframe_log(level, dev, &frame->spd); in hdmi_infoframe_log()
997 hdmi_audio_infoframe_log(level, dev, &frame->audio); in hdmi_infoframe_log()
1000 hdmi_vendor_any_infoframe_log(level, dev, &frame->vendor); in hdmi_infoframe_log()
1007 * hdmi_avi_infoframe_unpack() - unpack binary buffer to a HDMI AVI infoframe
1027 return -EINVAL; in hdmi_avi_infoframe_unpack()
1030 return -EINVAL; in hdmi_avi_infoframe_unpack()
1038 frame->colorspace = (ptr[0] >> 5) & 0x3; in hdmi_avi_infoframe_unpack()
1040 frame->active_aspect = ptr[1] & 0xf; in hdmi_avi_infoframe_unpack()
1042 frame->top_bar = (ptr[6] << 8) | ptr[5]; in hdmi_avi_infoframe_unpack()
1043 frame->bottom_bar = (ptr[8] << 8) | ptr[7]; in hdmi_avi_infoframe_unpack()
1046 frame->left_bar = (ptr[10] << 8) | ptr[9]; in hdmi_avi_infoframe_unpack()
1047 frame->right_bar = (ptr[12] << 8) | ptr[11]; in hdmi_avi_infoframe_unpack()
1049 frame->scan_mode = ptr[0] & 0x3; in hdmi_avi_infoframe_unpack()
1051 frame->colorimetry = (ptr[1] >> 6) & 0x3; in hdmi_avi_infoframe_unpack()
1052 frame->picture_aspect = (ptr[1] >> 4) & 0x3; in hdmi_avi_infoframe_unpack()
1053 frame->active_aspect = ptr[1] & 0xf; in hdmi_avi_infoframe_unpack()
1055 frame->itc = ptr[2] & 0x80 ? true : false; in hdmi_avi_infoframe_unpack()
1056 frame->extended_colorimetry = (ptr[2] >> 4) & 0x7; in hdmi_avi_infoframe_unpack()
1057 frame->quantization_range = (ptr[2] >> 2) & 0x3; in hdmi_avi_infoframe_unpack()
1058 frame->nups = ptr[2] & 0x3; in hdmi_avi_infoframe_unpack()
1060 frame->video_code = ptr[3] & 0x7f; in hdmi_avi_infoframe_unpack()
1061 frame->ycc_quantization_range = (ptr[4] >> 6) & 0x3; in hdmi_avi_infoframe_unpack()
1062 frame->content_type = (ptr[4] >> 4) & 0x3; in hdmi_avi_infoframe_unpack()
1064 frame->pixel_repeat = ptr[4] & 0xf; in hdmi_avi_infoframe_unpack()
1070 * hdmi_spd_infoframe_unpack() - unpack binary buffer to a HDMI SPD infoframe
1090 return -EINVAL; in hdmi_spd_infoframe_unpack()
1094 return -EINVAL; in hdmi_spd_infoframe_unpack()
1102 frame->sdi = ptr[24]; in hdmi_spd_infoframe_unpack()
1108 * hdmi_audio_infoframe_unpack() - unpack binary buffer to a HDMI AUDIO infoframe
1128 return -EINVAL; in hdmi_audio_infoframe_unpack()
1132 return -EINVAL; in hdmi_audio_infoframe_unpack()
1140 frame->channels = ptr[0] & 0x7; in hdmi_audio_infoframe_unpack()
1141 frame->coding_type = (ptr[0] >> 4) & 0xf; in hdmi_audio_infoframe_unpack()
1142 frame->sample_size = ptr[1] & 0x3; in hdmi_audio_infoframe_unpack()
1143 frame->sample_frequency = (ptr[1] >> 2) & 0x7; in hdmi_audio_infoframe_unpack()
1144 frame->coding_type_ext = ptr[2] & 0x1f; in hdmi_audio_infoframe_unpack()
1145 frame->channel_allocation = ptr[3]; in hdmi_audio_infoframe_unpack()
1146 frame->level_shift_value = (ptr[4] >> 3) & 0xf; in hdmi_audio_infoframe_unpack()
1147 frame->downmix_inhibit = ptr[4] & 0x80 ? true : false; in hdmi_audio_infoframe_unpack()
1153 * hdmi_vendor_infoframe_unpack() - unpack binary buffer to a HDMI vendor infoframe
1172 struct hdmi_vendor_infoframe *hvf = &frame->hdmi; in hdmi_vendor_any_infoframe_unpack()
1177 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1183 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1191 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1196 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1202 hvf->length = length; in hdmi_vendor_any_infoframe_unpack()
1206 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1207 hvf->s3d_struct = ptr[4] >> 4; in hdmi_vendor_any_infoframe_unpack()
1208 if (hvf->s3d_struct >= HDMI_3D_STRUCTURE_SIDE_BY_SIDE_HALF) { in hdmi_vendor_any_infoframe_unpack()
1210 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1211 hvf->s3d_ext_data = ptr[5] >> 4; in hdmi_vendor_any_infoframe_unpack()
1215 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1216 hvf->vic = ptr[4]; in hdmi_vendor_any_infoframe_unpack()
1219 return -EINVAL; in hdmi_vendor_any_infoframe_unpack()
1226 * hdmi_infoframe_unpack() - unpack binary buffer to a HDMI infoframe
1244 ret = hdmi_avi_infoframe_unpack(&frame->avi, buffer); in hdmi_infoframe_unpack()
1247 ret = hdmi_spd_infoframe_unpack(&frame->spd, buffer); in hdmi_infoframe_unpack()
1250 ret = hdmi_audio_infoframe_unpack(&frame->audio, buffer); in hdmi_infoframe_unpack()
1253 ret = hdmi_vendor_any_infoframe_unpack(&frame->vendor, buffer); in hdmi_infoframe_unpack()
1256 ret = -EINVAL; in hdmi_infoframe_unpack()