void write_subtitle_file_header(struct encoder_ctx *ctx,struct ccx_s_write *out) { int used; switch (ccx_options.write_format) { case CCX_OF_SRT: // Subrip subtitles have no header break; case CCX_OF_SAMI: // This header brought to you by McPoodle's CCASDI //fprintf_encoded (wb->fh, sami_header); REQUEST_BUFFER_CAPACITY(ctx,strlen (sami_header)*3); used=encode_line (ctx->buffer,(unsigned char *) sami_header); write (out->fh, ctx->buffer,used); break; case CCX_OF_SMPTETT: // This header brought to you by McPoodle's CCASDI //fprintf_encoded (wb->fh, sami_header); REQUEST_BUFFER_CAPACITY(ctx,strlen (smptett_header)*3); used=encode_line (ctx->buffer,(unsigned char *) smptett_header); write(out->fh, ctx->buffer, used); break; case CCX_OF_RCWT: // Write header if (ccx_options.teletext_mode == CCX_TXT_IN_USE) rcwt_header[7] = 2; // sets file format version if (ccx_options.send_to_srv) net_send_header(rcwt_header, sizeof(rcwt_header)); else write(out->fh, rcwt_header, sizeof(rcwt_header)); break; case CCX_OF_SPUPNG: write_spumux_header(out); break; case CCX_OF_TRANSCRIPT: // No header. Fall thru default: break; } }
static int write_subtitle_file_header(struct encoder_ctx *ctx, struct ccx_s_write *out) { int used; int ret = 0; switch (ctx->write_format) { case CCX_OF_SRT: // Subrip subtitles have no header ret = write_bom(ctx, out); if(ret < 0) return -1; break; case CCX_OF_WEBVTT: // WEBVTT subtitles have no header ret = write_bom(ctx, out); if(ret < 0) return -1; break; case CCX_OF_SAMI: // This header brought to you by McPoodle's CCASDI //fprintf_encoded (wb->fh, sami_header); ret = write_bom(ctx, out); if(ret < 0) return -1; REQUEST_BUFFER_CAPACITY(ctx,strlen (sami_header)*3); used = encode_line (ctx->buffer,(unsigned char *) sami_header); ret = write (out->fh, ctx->buffer,used); break; case CCX_OF_SMPTETT: // This header brought to you by McPoodle's CCASDI //fprintf_encoded (wb->fh, sami_header); ret = write_bom(ctx, out); if(ret < 0) return -1; REQUEST_BUFFER_CAPACITY(ctx,strlen (smptett_header)*3); used=encode_line (ctx->buffer,(unsigned char *) smptett_header); ret = write(out->fh, ctx->buffer, used); if(ret < used) { mprint("WARNING: Unable to write complete Buffer \n"); return -1; } break; case CCX_OF_RCWT: // Write header rcwt_header[7] = ctx->in_fileformat; // sets file format version if (ctx->send_to_srv) net_send_header(rcwt_header, sizeof(rcwt_header)); else { ret = write(out->fh, rcwt_header, sizeof(rcwt_header)); if(ret < 0) { mprint("Unable to write rcwt header\n"); return -1; } } break; case CCX_OF_RAW: ret = write(out->fh,BROADCAST_HEADER, sizeof(BROADCAST_HEADER)); if(ret < sizeof(BROADCAST_HEADER)) { mprint("Unable to write Raw header\n"); return -1; } case CCX_OF_SPUPNG: ret = write_bom(ctx, out); if(ret < 0) return -1; write_spumux_header(ctx, out); break; case CCX_OF_TRANSCRIPT: // No header. Fall thru ret = write_bom(ctx, out); if(ret < 0) return -1; default: break; } return ret; }
static int write_subtitle_file_header(struct encoder_ctx *ctx, struct ccx_s_write *out) { int used; int ret = 0; int header_size = 0; switch (ctx->write_format) { case CCX_OF_SRT: // Subrip subtitles have no header case CCX_OF_G608: ret = write_bom(ctx, out); if(ret < 0) return -1; break; case CCX_OF_SSA: ret = write_bom(ctx, out); if(ret < 0) return -1; REQUEST_BUFFER_CAPACITY(ctx,strlen (ssa_header)*3); used = encode_line (ctx, ctx->buffer,(unsigned char *) ssa_header); ret = write (out->fh, ctx->buffer, used); if(ret < used) { mprint("WARNING: Unable to write complete Buffer \n"); return -1; } break; case CCX_OF_WEBVTT: ret = write_bom(ctx, out); if (ret < 0) return -1; for(int i = 0; webvtt_header[i]!=NULL ;i++) { header_size += strlen(webvtt_header[i]); // Find total size of the header } REQUEST_BUFFER_CAPACITY(ctx, header_size*3); for(int i = 0; webvtt_header[i]!=NULL;i++) { if(ccx_options.enc_cfg.line_terminator_lf == 1 && strcmp(webvtt_header[i],"\r\n")==0) // If -lf parameter passed, write LF instead of CRLF { used = encode_line (ctx, ctx->buffer,(unsigned char *) "\n"); } else { used = encode_line (ctx, ctx->buffer,(unsigned char *) webvtt_header[i]); } ret = write (out->fh, ctx->buffer,used); if(ret < used) { mprint("WARNING: Unable to write complete Buffer \n"); return -1; } } break; case CCX_OF_SAMI: // This header brought to you by McPoodle's CCASDI //fprintf_encoded (wb->fh, sami_header); ret = write_bom(ctx, out); if(ret < 0) return -1; REQUEST_BUFFER_CAPACITY(ctx,strlen (sami_header)*3); used = encode_line (ctx, ctx->buffer,(unsigned char *) sami_header); ret = write (out->fh, ctx->buffer, used); if(ret < used) { mprint("WARNING: Unable to write complete Buffer \n"); return -1; } break; case CCX_OF_SMPTETT: // This header brought to you by McPoodle's CCASDI //fprintf_encoded (wb->fh, sami_header); ret = write_bom(ctx, out); if(ret < 0) return -1; REQUEST_BUFFER_CAPACITY(ctx,strlen (smptett_header)*3); used=encode_line (ctx, ctx->buffer,(unsigned char *) smptett_header); ret = write(out->fh, ctx->buffer, used); if(ret < used) { mprint("WARNING: Unable to write complete Buffer \n"); return -1; } break; case CCX_OF_RCWT: // Write header rcwt_header[7] = ctx->in_fileformat; // sets file format version if (ctx->send_to_srv) net_send_header(rcwt_header, sizeof(rcwt_header)); else { ret = write(out->fh, rcwt_header, sizeof(rcwt_header)); if(ret < 0) { mprint("Unable to write rcwt header\n"); return -1; } } break; case CCX_OF_RAW: ret = write(out->fh,BROADCAST_HEADER, sizeof(BROADCAST_HEADER)); if(ret < sizeof(BROADCAST_HEADER)) { mprint("Unable to write Raw header\n"); return -1; } break; case CCX_OF_SPUPNG: ret = write_bom(ctx, out); if(ret < 0) return -1; write_spumux_header(ctx, out); break; case CCX_OF_TRANSCRIPT: // No header. Fall thru ret = write_bom(ctx, out); if(ret < 0) return -1; break; case CCX_OF_SIMPLE_XML: // No header. Fall thru ret = write_bom(ctx, out); if(ret < 0) return -1; REQUEST_BUFFER_CAPACITY(ctx,strlen (simple_xml_header)*3); used=encode_line (ctx, ctx->buffer,(unsigned char *) simple_xml_header); ret = write(out->fh, ctx->buffer, used); if(ret < used) { mprint("WARNING: Unable to write complete Buffer \n"); return -1; } break; default: break; } return ret; }