/* * Copyright (c) 2011-2012 - Mauro Carvalho Chehab * Copyright (c) 2012 - Andre Roth * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation version 2.1 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * */ #include #include #if __GNUC__ >= 9 #pragma GCC diagnostic ignored "-Waddress-of-packed-member" #endif int dvb_desc_language_init(struct dvb_v5_fe_parms *parms, const uint8_t *buf, struct dvb_desc *desc) { struct dvb_desc_language *lang = (struct dvb_desc_language *) desc; size_t len, dlen = desc->length; len = sizeof(lang->language) - 1 + sizeof(lang->audio_type); if (len != dlen) { dvb_logwarn("language descriptor size is wrong: expected %zu, received %zu", len, dlen); return -1; } lang->language[0] = buf[0]; lang->language[1] = buf[1]; lang->language[2] = buf[2]; lang->language[3] = '\0'; lang->audio_type = buf[3]; return 0; } void dvb_desc_language_print(struct dvb_v5_fe_parms *parms, const struct dvb_desc *desc) { const struct dvb_desc_language *lang = (const struct dvb_desc_language *) desc; dvb_loginfo("| lang: %s (type: %d)", lang->language, lang->audio_type); }